字符串hash

字符串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

猜你喜欢

转载自www.cnblogs.com/Deadline/p/9154116.html