• 【洛谷P3709】大爷的字符串题


    看这题网上居然还没人写blog,怕是都去看洛谷自带的了……
    你才是字符串!你全家都是字符串!这题跟字符串没多大关系,只是出题人lxl想要吐槽某中学而已……、、、
    其实这题说白了就是问区间里出现最多的数出现了多少次,上去就莫队就行……
    不过要注意离散化。
    虽然lxl很sxbk,不过能想到这些题目,把题意悄悄的隐藏起来的大佬,可见其水平之高……
    在洛谷主站不开O2只有50分,有点吃O2的buff……
    辣鸡JSOI不能开O2真是差评啊。

    #include<bits/stdc++.h>
    #define N 200010
    using namespace std;
    int n,m,size,rt[N],a[N],c[N],cp[N],b[N],ans[N],vis[N];
    struct Query{int l,r,id;}q[N];
    bool operator <(Query a,Query b){
    	if(rt[a.l]!=rt[b.l])return rt[a.l]<rt[b.l];
    	if(rt[a.l]&1)return a.r<b.r;else return a.r>b.r;
    }
    inline int calc(){
    	for(int i=rt[n];i;i--)if(cp[i]){
    		for(int j=min(n,i*size);j;j--)if(c[j])return j;
    	}
    }
    inline void addx(int x){c[x]++;cp[rt[x]]++;}
    inline void delx(int x){c[x]--;cp[rt[x]]--;}
    inline void add(int x){delx(vis[x]);vis[x]++;addx(vis[x]);}
    inline void del(int x){delx(vis[x]);vis[x]--;addx(vis[x]);}
    inline int read(){
    	int f=1,x=0;char ch;
    	do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9');
    	do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9');
    	return f*x;
    }
    int main(){
    	n=read();m=read();size=(int)sqrt(n+0.5);
    	for(int i=1;i<=n;i++)rt[i]=(i-1)/size+1;
    	for(int i=1;i<=n;i++)a[i]=read(),b[i]=a[i];
    	sort(b+1,b+n+1);
    	for(int i=1;i<=n;i++)a[i]=lower_bound(b+1,b+n+1,a[i])-b;
        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);
        int l=1,r=0;
        for(int i=1;i<=m;i++){
    		for(;r<q[i].r;r++)add(a[r+1]);
            for(;l>q[i].l;l--)add(a[l-1]);
            for(;r>q[i].r;r--)del(a[r]);
            for(;l<q[i].l;l++)del(a[l]);
    		ans[q[i].id]=calc();
        }
        for(int i=1;i<=m;i++)printf("%d
    ",-ans[i]);
    }
    
  • 相关阅读:
    CF1452F Divide Powers 题解
    ZOJ3705Applications
    ZOJ3706Break Standard Weight
    关于技术的感悟与规划
    做自己不愿做的事叫成长,做以前不敢做的事叫突破
    CSS之盒模型
    js数组的sort排序详解
    C#接口
    jQuery UI Dialog:Demo1:入门
    CSS之position解释
  • 原文地址:https://www.cnblogs.com/zcysky/p/6850600.html
Copyright © 2020-2023  润新知