HDU 4287 Intelligent IME

题意: 给出一些按键顺序和一个字典,问每个按键顺序可以对应字典中多少个单词。

分析: 直接模拟之。

#include<stdio.h>
#include<string.h>
#include<string>
#include<map>
using namespace std;
int a[33];
void init()
{
    int i;
    for(i=0;i<15;i++)
        a[i]=i/3+2;
    for(;i<19;i++)
        a[i]=7;
    for(;i<22;i++)
        a[i]=8;
    for(;i<26;i++)
        a[i]=9;
}
char num[5005][7];
char s[8];
int main()
{
    init();
    int i,t,n,m;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        for(i=1;i<=n;i++)
            scanf("%s",num[i]);
        map<string,int>v;
        while(m--)
        {
            scanf("%s",s);
            for(i=0;s[i];i++)
                s[i]=a[s[i]-'a']+'0';
            v[s]++;
        }
        for(i=1;i<=n;i++)
            printf("%d\n",v[num[i]]);
    }
    return 0;
}

 

posted @ 2012-09-11 08:27  'wind  阅读(166)  评论(0编辑  收藏  举报