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