网站页面
当前课程
成员
General
主题 1
主题 2
主题 4
主题 5
主题 6
主题 7
主题 8
主题 9
主题 10
主题 11
主题 12
主题 13
主题 14
主题 15
主题 16
主题 17
主题 18
主题 19
主题 20
字符串哈希
成绩 | 0 | 开启时间 | 2013年02月21日 星期四 23:02 |
折扣 | 0.8 | 折扣时间 | 2013年02月28日 星期四 23:02 |
允许迟交 | 是 | 关闭时间 | 2013年02月28日 星期四 23:02 |
输入文件 | stringhash.in | 输出文件 | stringhash.out |
字符串哈希是一种非常好用的算法,它可以将一个字符串用一个整数来表示(尽管有时候会发生冲突),这是非常方便的.
现在小H拿着一些字符串来找你,希望你能帮她把这些字符串按照给定的规则转换成哈希值..
一个长度为n的字符串c1,c2,c3..cn-1,cn的哈希值=它的子串c1,c2,c3..cn-1的哈希值乘以一个常数Seed,再加上cn的ASCII值,
最后对一个整数2147483647求 “和” 运算的结果(“和”为位运算中的和,分别是Pascal中的and和C/C++中的&)
请注意,空串的哈希值为0
输入格式:
有N组数据
第一行是一个整数N
接下来有若干组数据,每个数据第一行是一个数len(len<=20),表示字符串的长度
下面一行有一个字符串和一个整数Seed,用一个空格隔开,字符串中只可能包含'a'..'z','1'..'9','A'..'Z'
输出格式:
共N行,每行一个整数即为对应数据的哈希值
样例输入:
1
6
yznJS1 131
样例输出:
1306619859
数据范围:
N<=10000
Seed<=131
其他如题。
by pom