进制哈希
来记录一下进制哈希和比较大的模数
点击查看代码
#define ull unsigned long long
ull BKDRHash(string s){
const ll m1 = 89999794200117649;
const ll m2 = 999999786000011449;
const ll m3 = 1000000000000002217;
const ll m4 = 100000000000001921;
ull P = 131, H = 0; // P 也可以是 13131 131313
int n = s.size();
for(int i = 0; i < n; i++){
H = H*P + s[i];
}
return H;
}