4775048_tle.cpp
来自「部分PKU上的源码」· C++ 代码 · 共 54 行
CPP
54 行
#include<iostream>
#define M 99983
using namespace std;
int hash[200000];
char x[100005][2][12];
char s[12];
int gethash(char temp[])
{
char * key=temp;
unsigned long h = 0;
while(*key)
{
h = (h<<4) + *key++;
unsigned long g = h & 0Xf0000000L;
if(g)
h ^= g >> 24;
h &= ~g;
}
return h % M;
}
int main()
{
int i=0,j=0;
while(1)
{
char a=getchar();
if(a=='\n') break;
x[i][0][0]=a;
scanf("%s%s",x[i][0]+1,x[i][1]);
getchar();
int p=gethash(x[i][1]);
while(hash[p]!=0) p++;
hash[p]=i;
i++;
}
while(scanf("%s",s)!=EOF)
{
int p=gethash(s);
bool done=false;
while(hash[p])
{
if(strcmp(x[hash[p]][1],s)==0)
{
printf("%s\n",x[hash[p]][0]);
done=true;
break;
}
p++;
}
if(!done) printf("eh\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?