摘要

题目链接 难度等级 完成状态 完成分数 最后编辑时间 失误原因(初次提交分数)
Intelligent IME ★☆☆☆☆ 答案正确 100 2014-11-07 13:14:22 多组数据未重置数组(0)

(WHU 2014-11-7练习赛)

题意

对应英文单词和手机打字所用的数字。

题解

反正读个字符串,匹配一下,用个map就结束了,也没什么特别。

就是count居然也是关键字(我的编译器不是233)被坑了,CE了好几次。

代码

4287.cpp代码已折叠
展开折叠内容
显示/移除行号
  1. #include<iostream>
  2. #include<string>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6. int cnt[1000000]={};
  7. int w[1000]={},code[10000]={},N,n,m;
  8. string str[10000]={};
  9. void init()
  10. {
  11. w['a']=w['b']=w['c']=2;
  12. w['d']=w['e']=w['f']=3;
  13. w['g']=w['h']=w['i']=4;
  14. w['j']=w['k']=w['l']=5;
  15. w['m']=w['n']=w['o']=6;
  16. w['p']=w['q']=w['r']=w['s']=7;
  17. w['t']=w['u']=w['v']=8;
  18. w['w']=w['x']=w['y']=w['z']=9;
  19. }
  20. const int trans(const string&str)
  21. {
  22. int u=0;
  23. for(int i=0;i!=str.size();++i)
  24. {
  25. u*=10;
  26. u+=w[str[i]];
  27. }
  28. return u;
  29. }
  30. void process()
  31. {
  32. memset(cnt,0,sizeof(cnt));
  33. cin>>n>>m;
  34. for(int i=1;i<=n;++i)
  35. {
  36. cin>>code[i];
  37. }
  38. for(int i=1;i<=m;++i)
  39. {
  40. cin>>str[i];
  41. cnt[trans(str[i])]++;
  42. }
  43. for(int i=1;i<=n;++i)
  44. {
  45. cout<<cnt[code[i]]<<endl;
  46. }
  47. }
  48. int main()
  49. {
  50. cin.sync_with_stdio(0);
  51. init();
  52. cin>>N;
  53. while(N--)
  54. {
  55. process();
  56. }
  57. return 0;
  58. }

著作权声明[编辑]

关于[编辑]