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 + -
显示快捷键?