CHOI 1401 兔子与兔子

Posted dream-runner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CHOI 1401 兔子与兔子相关的知识,希望对你有一定的参考价值。

字符串hash,注意hash是关键字!

技术分享图片
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
const int N=1000005;
const ull k=10007;
char a[N];
ull ha[N],p[N];
int main(){
    scanf("%s",a+1);
    int m,len=strlen(a+1);
    p[0]=1;
    for(int i=1;i<=len;++i){
        ha[i]=(ull)ha[i-1]*k+a[i]-a+1;
        p[i]=(ull)p[i-1]*k;
    }
    scanf("%d",&m);
    for(int i=1;i<=m;++i){
        int l1,r1,l2,r2;
        scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
        if(ha[r1]-ha[l1-1]*p[r1-l1+1]==ha[r2]-ha[l2-1]*p[r2-l2+1])puts("Yes");
        else puts("No");
    }
    return 0;
}
View Code

 

以上是关于CHOI 1401 兔子与兔子的主要内容,如果未能解决你的问题,请参考以下文章

C语言100个经典算法源码片段

哈希兔子与兔子

双Hash--兔子与兔子

兔子与兔子(hash模板题)

兔子与兔子(字符串Hash)

AcWing:138. 兔子与兔子(Hash)