记录编号 27035 评测结果 AAAAAAAAAA
题目名称 字符串哈希 最终得分 100
用户昵称 Gravatar201101 是否通过 通过
代码语言 C++ 运行时间 0.078 s
提交时间 2011-07-31 14:54:05 内存使用 0.26 MiB
显示代码纯文本
#include <stdio.h>
using namespace std;
int main(void)
{
	freopen("stringhash.in","r",stdin);
	freopen("stringhash.out","w",stdout);
	const unsigned int NUM=2147483647;
	unsigned int i,j,n,len,seed,hash;
	char str[21];
	scanf("%u",&n);
	for (i=1;i<=n;i++)
	{
		scanf("%u",&len);
		if (len>=1)
		{
			scanf("%s %u",&str,&seed);
			hash=0;
			for (j=0;j<=len-1;j++)
				hash=(hash*seed+str[j])&NUM;
			printf("%u\n",hash);
		}
		else
		{
			scanf("%u",&seed);
			printf("0\n");
		}
	}
	fclose(stdin);
	fclose(stdout);
	return(0);
}