题目:POJ-2503
题意:字典中的单词对于不同的类别,求给定的单词的类别
题解:直接hash,但是输入真的很毒瘤。。。。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
#include<map>
#define P 233
#define N 100005
#define LL long long
using namespace std;
char s[15],a[N][15],b[15];
char t;
map<LL,int>vis;
int main()
{
int n=0;
while(1)
{
n++;
if((t=getchar())=='\n')break;
else
{
a[n][0]=t;
int k=0;
while(1)
{
t=getchar();
if(t==' '){break;}
else a[n][++k]=t;//输入a
}
}
scanf("%s",b);
getchar();//吃掉回车
int len=strlen(b);
LL has=0;
for(int i=0;i<len;i++)
has=has*P+(b[i]-'a'+1);
vis[has]=n;
}
while(~scanf("%s",s))
{
LL has=0;
int len=strlen(s);
for(int j=0;j<len;j++)
has=has*P+(s[j]-'a'+1);
if(vis[has]==0)printf("eh\n");
else printf("%s\n",a[vis[has]]);
}
return 0;
}