字符串hash: 就是把一个字符串通过函数 f 映射为一个整数。从而达到通过比较整数来确定字符串的出现次数。
hash公式:
const int maxn=1e6+100;
typedef unsigned long long ull;
ull Hash[maxn];
ull f=33333;/*定义f为一个质数*/
int main()
{
char s[maxn];
for(int i=0;i<=maxn-1;i++)
{
Hash[i]=Hash[i-1]*f+s[i];
}
return 0;
}
如果这里不用usigned的话,可以将Hash[i]=Hash[i-1]*f+s[i])%mod,这里mod>f;mod,f都为大的质数即可。
举例: