记录编号 30544 评测结果 AAAAAAAAAA
题目名称 字符串哈希 最终得分 100
用户昵称 GravatarYeehok 是否通过 通过
代码语言 C++ 运行时间 0.144 s
提交时间 2011-10-30 11:13:17 内存使用 0.26 MiB
显示代码纯文本
#include<cstdio>
using namespace std;
long long ans=0;
int len,n,i,j,seed;
char str[30];
void calu(int x)
{
	ans *= seed;
	ans += str[x];
	ans = ans & 2147483647;
	if(x < len-1)
		calu(x+1);
}
int main()
{
	freopen("stringhash.in","r",stdin);
	freopen("stringhash.out","w",stdout);
	scanf("%d\n",&n);
	for(i = 0;i < n;i ++)
	{
		scanf("%d\n",&len);
		for(j=0;j<len;j++)
		{
			scanf("%c",&str[j]);
		}
		scanf("%d",&seed);
		if(len == 0)
		{
			printf("%d\n",0);
			continue;
		}
		calu(0);
		printf("%d\n",ans);
		ans = 0;
	}
	return (0);
}