字符串hash
1,对于一个整串hash
ans+=(ans*base+s[i])%mod
2,求子串匹配,用子串的hash值
hash[i]=(hash[i-1]*base+s[i])%mod
故[L,R] hash[L,R] = hash[R]-hash[l-1]×(base^(R-L+1))
一般直接将数据类型定义为unsigned long long 它的范围是在[0, 2^64) 内,这就相当于,当数超不过2^64-1后,它会溢出,这就相当于一个数模2^64的过程。
3,双hash
取两个不同的mod值即可
eg:mod1=1e9+7 mod2=1e9+9