哈希模板
Posted Frozen_Guardian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哈希模板相关的知识,希望对你有一定的参考价值。
const int mod[]={(LL)1e9+7,(LL)1e9+9};
const int base[]={233,2333};
LL Hash[2][N],f[2][N];
void initHash(string s) {
// s=" "+s;
int n=s.size()-1;
Hash[0][0]=Hash[1][0]=0;
for(int j=0;j<2;j++) {
for(int i=1;i<=n;i++) {
Hash[j][i]=(Hash[j][i-1]*base[j]+(s[i]-'a'+1))%mod[j];
}
}
}
pair<LL,LL>getHash(int l,int r) {
return make_pair((Hash[0][r]-(Hash[0][l-1]*f[0][r-l+1])%mod[0]+mod[0])%mod[0],
(Hash[1][r]-(Hash[1][l-1]*f[1][r-l+1])%mod[1]+mod[1])%mod[1]);
}
void init() {
f[0][0]=f[1][0]=1;
for(int j=0;j<2;j++) {
for(int i=1;i<N;i++) {
f[j][i]=f[j][i-1]*base[j]%mod[j];
}
}
}
以上是关于哈希模板的主要内容,如果未能解决你的问题,请参考以下文章