哈希模板

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];
        }
    }
}

以上是关于哈希模板的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)

下文中的哈希片段指的是啥?

Eclipse 中的通用代码片段或模板

URL片段的最大长度(哈希)

URL的PHP​​和哈希/片段部分