兔子与兔子

Posted tztqwq

tags:

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

题意就是随机给两个字符串, 判断ta们是否相等, 字符串从一开始给出的字符串截取。

说句废话, 复杂度好像可以强行乘个log

#include<bits/stdc++.h>
using namespace std;

char s[1000010];
unsigned long long f[1000010],p[1000010];

int main()
{
    scanf("%s",s+1);
    int n=strlen(s+1),q;cin>>q;
    p[0]=1;
    for(int i=1;i<=n;++i)
    {
        f[i]=f[i-1]*131+(s[i]-'a'+1);
        p[i]=p[i-1]*131;
    }
    for(int i=1;i<=q;++i)
    {
        int l1,r1,l2,r2;
        scanf("%d%d%d%d",&l1,&r1,&l2,&r2);
        if(f[r1]-f[l1-1]*p[r1-l1+1]==f[r2]-f[l2-1]*p[r2-l2+1]) {
            puts("Yes");
        }
        else {
            puts("No");
        }
    }
    return 0;
}

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

双Hash--兔子与兔子

兔子与兔子(hash模板题)

兔子与兔子(字符串Hash)

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

CH 1401 - 兔子与兔子 - [字符串hash]

兔子与兔子