1 条题解

  • 2
    @ 2021-8-7 20:42:43

    C++ :

    
    #include<cstdio>
    #include<iostream>
    #include<cstring>
    using namespace std;
    const int maxn=1000000+7;
    unsigned long long f[maxn],p[maxn];
    char s[maxn];
    int main(){
        int q;
        scanf("%s",s+1);
        p[0]=1;
        int len=strlen(s+1);
        for(int i=1;i<=len;i++){
            f[i]=f[i-1]*131+(s[i]-'a'+1);
            p[i]=p[i-1]*131;
        }
        scanf("%d",&q);
        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;
    }
    
    • 1

    信息

    ID
    49
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    117
    已通过
    71
    上传者