摘要
|  题目链接  | 
 难度等级  | 
 完成状态  | 
 完成分数  | 
 最后编辑时间  | 
 失误原因(初次提交分数)
 | 
|  Intelligent IME
 | 
 ★☆☆☆☆
 | 
 答案正确
 | 
 100
 | 
2014-11-07 13:14:22
 | 
多组数据未重置数组(0)
 | 
(WHU 2014-11-7练习赛)
题意
对应英文单词和手机打字所用的数字。
题解
反正读个字符串,匹配一下,用个map就结束了,也没什么特别。
就是count居然也是关键字(我的编译器不是233)被坑了,CE了好几次。
代码
| 4287.cpp代码已折叠
 展开折叠内容 
 | 
 - #include<iostream>
 - #include<string>
 - #include<cstring>
 - #include<algorithm>
 - using namespace std;
 - int cnt[1000000]={};
 - int w[1000]={},code[10000]={},N,n,m;
 - string str[10000]={};
 - void init()
 - {
 -     w['a']=w['b']=w['c']=2;
 -     w['d']=w['e']=w['f']=3;
 -     w['g']=w['h']=w['i']=4;
 -     w['j']=w['k']=w['l']=5;
 -     w['m']=w['n']=w['o']=6;
 -     w['p']=w['q']=w['r']=w['s']=7;
 -     w['t']=w['u']=w['v']=8;
 -     w['w']=w['x']=w['y']=w['z']=9;
 - }
 - const int trans(const string&str)
 - {
 -     int u=0;
 -     for(int i=0;i!=str.size();++i)
 -     {
 -         u*=10;
 -         u+=w[str[i]];
 -     }
 -     return u;
 - }
 - void process()
 - {
 -     memset(cnt,0,sizeof(cnt));
 -     cin>>n>>m;
 -     for(int i=1;i<=n;++i)
 -     {
 -         cin>>code[i];
 -     }
 -     for(int i=1;i<=m;++i)
 -     {
 -         cin>>str[i];
 -         cnt[trans(str[i])]++;
 -     }
 -     for(int i=1;i<=n;++i)
 -     {
 -         cout<<cnt[code[i]]<<endl;
 -     }
 - }
 - int main()
 - {
 -     cin.sync_with_stdio(0);
 -     init();
 -     cin>>N;
 -     while(N--)
 -     {
 -         process();
 -     }
 -     return 0;
 - }
 
  
 
 |