zoukankan      html  css  js  c++  java
  • 莫队

    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int N=250005;
    //const int M=200005;
    int n,m,a[N],s[N],belong[N],ans[N],color=0;
    struct q{int l,r,id;}t[N];
    int u[1000005];
    bool cmp(q x,q y)
    {
        if(belong[x.l]==belong[y.l]) return x.r<y.r;
        return x.l<y.l;
    }
    int Ans=0;
    int main()
    {
        memset(u,0,sizeof(u));
        memset(s,0,sizeof(s));
        scanf("%d",&n);int k=(int)(sqrt(n));
        for(int i=1;i<=n;i++)
        {
            int x;
            scanf("%d",&x);
            if(u[x]==0)
            {
                a[i]=++color;
                u[x]=a[i];
            }
            else a[i]=u[x];
        }//离散化
        for(int i=1;i<=n;i++) belong[i]=(i-1)/k+1;
        scanf("%d",&m);
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d",&t[i].l,&t[i].r);
            t[i].id=i;
        }
        sort(t+1,t+1+m,cmp);
        int l=1,r=0;
        for(int i=1;i<=m;i++)
        {
            while(l<t[i].l)
            {
                if(s[a[l]]==1) Ans--;
                s[a[l]]--;
                l++;
            }
            while(r>t[i].r)
            {
                if(s[a[r]]==1) Ans--;
                s[a[r]]--;
                r--;
            }
            while(l>t[i].l)
            {
                l--;
                if(s[a[l]]==0) Ans++;
                s[a[l]]++;
            }
            while(r<t[i].r)
            {
                r++;
                if(s[a[r]]==0) Ans++;
                s[a[r]]++;
            }
            ans[t[i].id]=Ans;
        }
        for(int i=1;i<=m;i++) printf("%d ",ans[i]);
    }

  • 相关阅读:
    jQuery 控制表单里回车键 自动下一个标签
    Firefox 图片模糊的问题
    An UDF to calculate weekday
    Number of sets of natural numbers less than n which sum to n.
    一元多项式的幂
    jquery tablelist Tablesorter 表格控件
    结构体 vector map嵌套使用
    [置顶] 好的网站
    人,这一辈子
    error C2471: 无法更新程序数据库vc90.pdb
  • 原文地址:https://www.cnblogs.com/lmjer/p/8543606.html
Copyright © 2011-2022 走看看