摘要
题目链接 |
难度等级 |
完成状态 |
完成分数 |
最后编辑时间 |
失误原因(初次提交分数)
|
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;
- }
|