摘要

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

著作权声明[编辑]

关于[编辑]