zoukankan      html  css  js  c++  java
  • P3901 数列找不同

    P3901 数列找不同

    询问一个区间的数是否互不相同。

    直接莫队区间数颜色。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=10000005,M=10000005;
    int read(){
        int x=0,f=1;char ch=getchar();
        while(ch>'9'||ch<'0'){if(ch=='-'){f=-1;}ch=getchar();}
        while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
        return x*f;
    }
    int a[N],pos[N],n,m,ANS[N],ans=1,cnt[N],num[N],A[N];
    struct node{
        int l,r,id;
    }q[N];
    bool cmp(node x,node y){
        if(pos[x.l]==pos[y.l]) return x.r<y.r;
        return pos[x.l]<pos[y.l];
    }
    void update(int id,int f){
        if(f==1){
            num[cnt[a[id]]]--;
            num[cnt[a[id]]+1]++;
            cnt[a[id]]++;
            if(cnt[a[id]]>ans) ans=cnt[a[id]];
        }
        else{
            num[cnt[a[id]]]--;
            if(num[ans]==0) ans--;
            num[cnt[a[id]]-1]++;
            cnt[a[id]]--;
        }
        return ;
    }
    int main(){
        n=read(),m=read();
        int op=sqrt(n);
        for(int i=1;i<=n;i++){
            A[i]=read();
            a[i]=A[i];
            pos[i]=i/op;
        }
        sort(A+1,A+n+1);
        int nn=unique(A+1,A+n+1)-A-1;
        for(int i=1;i<=n;i++) a[i]=lower_bound(A+1,A+nn+1,a[i])-A;
        for(int i=1;i<=m;i++){
            q[i].l=read(),q[i].r=read(),q[i].id=i;
        }
        sort(q+1,q+m+1,cmp);
        for(int i=1,l=1,r=0;i<=m;i++){
            while(l<q[i].l) update(l++,-1);
            while(l>q[i].l) update(--l,1);
            while(r<q[i].r) update(++r,1);
            while(r>q[i].r) update(r--,-1);
    
            ANS[q[i].id]=ans;
        }
        for(int i=1;i<=m;i++){
            if(ANS[i]>1){
                cout<<"No"<<endl;
            }
            else cout<<"Yes"<<endl;
        }
        return 0;
    }
    
    
  • 相关阅读:
    linux 批量替换内容
    在Linux下如何查CC攻击?
    mysql init_connect
    利用javascript对字符串加密
    js学习笔记10----字符串的基本操作
    js学习笔记9----时间操作
    3种方法实现列表自动滚动
    如何解决wow.js与fullpage的兼容性
    js兼容获取元素的样式
    用php去除bom头
  • 原文地址:https://www.cnblogs.com/Akmaey/p/14686845.html
Copyright © 2011-2022 走看看