您的位置:首页 > 其它

HDU4287

2015-10-15 11:41 323 查看
HDU 4287】Intelligent IME

数字个数最多就是6个,不用字典树,直接开几个数组记录就可以了

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
#define inf 1000000
int p[30];
int vis[inf];
int d[5005];
int main()
{
	int t;
	p[0]=p[1]=p[2]=2;
	p[3]=p[4]=p[5]=3;
	p[6]=p[7]=p[8]=4;
	p[9]=p[10]=p[11]=5;
	p[12]=p[13]=p[14]=6;
	p[15]=p[16]=p[17]=p[18]=7;
	p[19]=p[20]=p[21]=8;
	p[22]=p[23]=p[24]=p[25]=9;
	scanf("%d",&t);
	while(t--)
	{
		int n,m;
		memset(vis,0,sizeof(vis));
		scanf("%d%d",&n,&m);
		for(int i=0;i<n;i++) scanf("%d",&d[i]);
		for(int i=0;i<m;i++)
		{
			char s[10];
			scanf("%s",&s);
			int ans=0,li=1,len=strlen(s);
			for(int i=len-1;i>=0;i--)
			{
				ans+=li*p[s[i]-'a'];
				li*=10;
			}
			vis[ans]++;
		}
		for(int i=0;i<n;i++)
		{
			printf("%d\n",vis[d[i]]);
		}
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: