zoukankan      html  css  js  c++  java
  • CodeForces 617E XOR and Favorite Number

    莫队算法。

    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    const int maxn=100000+10;
    int a[maxn],pre[maxn];
    long long cnt[20*maxn];
    int pos[maxn];
    int n,m,k;
    long long ans[maxn];
    long long Ans;
    int L,R;
    struct X
    {
        int l,r,id;
    }s[maxn];
    
    bool cmp(const X&a,const X&b)
    {
        if(pos[a.l]==pos[b.l]) return a.r<b.r;
        return a.l<b.l;
    }
    
    int main()
    {
        scanf("%d%d%d",&n,&m,&k);
    
        int sz=sqrt(n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
            pre[i]=(pre[i-1]^a[i]);
            pos[i]=i/sz;
        }
    
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d",&s[i].l,&s[i].r);
            s[i].id=i;
        }
    
        sort(s+1,s+1+m,cmp);
        Ans=0;
    
        cnt[pre[s[1].l-1]]++;
    
        for(int i=s[1].l;i<=s[1].r;i++)
        {
            Ans=Ans+cnt[pre[i]^k];
            cnt[pre[i]]++;
        }
    
        L=s[1].l; R=s[1].r;
        ans[s[1].id]=Ans;
    
        for(int i=2;i<=m;i++)
        {
            while(L<s[i].l)
            {
                cnt[pre[L-1]]--;
                Ans=Ans-cnt[pre[L-1]^k];
                L++;
            }
    
            while(L>s[i].l)
            {
                L--;
                Ans=Ans+cnt[pre[L-1]^k];
                cnt[pre[L-1]]++;
            }
    
            while(R<s[i].r)
            {
                R++;
                Ans=Ans+cnt[pre[R]^k];
                cnt[pre[R]]++;
            }
    
            while(R>s[i].r)
            {
                cnt[pre[R]]--;
                Ans=Ans-cnt[pre[R]^k];
                R--;
            }
            ans[s[i].id]=Ans;
        }
    
        for(int i=1;i<=m;i++)
            printf("%lld
    ",ans[i]);
    
        return 0;
    }
  • 相关阅读:
    静态文件
    orm多表操作
    thinkphp5.0模块设计
    thinkphp5.0URL访问
    thinkphp5.0入口文件
    thinkphp5.0生命周期
    thinkphp5.0架构总览
    thinkphp5.0目录结构
    thinkphp5.0开发规范
    thinkphp5.0安装
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5405963.html
Copyright © 2011-2022 走看看