Matsusaki @ 2018-09-25 20:06:54
第2、3、4个点过不去,求dalao帮忙查错.
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int maxn=100005;
int n,Q,ans,Max,num,TT;
int a[maxn],id[maxn],tot[1005][maxn],sum[1005][maxn],pos[maxn];
int cnt[maxn],md[1005][1005],c[maxn];
bool cmp(int x,int y){return a[x]<a[y];}
bool cmp2(int x,int y){return id[x]<id[y];}
inline int read()
{
int ret=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9') {if(ch=='-') f=-f;ch=getchar();}
while(ch>=48&&ch<=57) {ret=ret*10+ch-48;ch=getchar();}
return ret*f;
}
int get(int x,int l,int r){return cnt[x]+sum[pos[r]-1][x]-sum[pos[l]][x];}
int main()
{
n=read(),Q=read();TT=sqrt(n);
for(int i=1;i<=n;i++) a[i]=read(),id[i]=i,pos[i]=(i-1)/TT+1;
sort(id+1,id+1+n,cmp);
for(int i=1;i<=n;i++)
{
int j=i;
while(a[id[j+1]]==a[id[i]]&&j<n) j++;
c[++num]=a[id[i]];
for(int k=i;k<=j;k++) a[id[k]]=num;
i=j;
}
for(int i=1;i<=n;i++) tot[pos[i]][a[i]]++;
for(int i=1;i<=TT;i++) for(int j=1;j<=num;j++) sum[i][j]=sum[i-1][j]+tot[i][j];
for(int i=1;i<=pos[n];i++)
{
for(int j=(i-1)*TT+1;j<=n;j++)
{
if(pos[j]!=pos[j-1]) md[i][pos[j]]=md[i][pos[j-1]];
int &x=md[i][pos[j]];
if(++cnt[a[j]]>cnt[x]||(cnt[a[j]]==cnt[x]&&a[j]<x)) x=a[j];
}
for(int j=(i-1)*TT+1;j<=n;j++) --cnt[a[j]];
}
while(Q--)
{
int l=(read()+c[ans]-1)%n+1,r=(read()+c[ans]-1)%n+1;
if(l>r) swap(l,r);
ans=0;
if(pos[r]-pos[l]<=2)
{
for(int j=l;j<=r;j++) if(++cnt[a[j]]>cnt[ans]||(cnt[a[j]]==cnt[ans]&&a[j]<ans)) ans=a[j];
for(int j=l;j<=r;j++) --cnt[a[j]];
}
else
{
ans=md[pos[l]+1][pos[r]-1];
for(int j=l;pos[j]==pos[l];j++)
{
++cnt[a[j]];
if(get(a[j],l,r)>get(ans,l,r)||(get(a[j],l,r)==get(ans,l,r)&&a[j]<ans)) ans=a[j];
}
for(int j=r;pos[j]==pos[r];j--)
{
++cnt[a[j]];
if(get(a[j],l,r)>get(ans,l,r)||(get(a[j],l,r)==get(ans,l,r)&&a[j]<ans)) ans=a[j];
}
for(int j=l;pos[j]==pos[l];j++) --cnt[a[j]];
for(int j=r;pos[j]==pos[r];j--) --cnt[a[j]];
}
printf("%d\n",c[ans]);
}
return 0;
}
代码风格勿喷
by 吹雪吹雪吹 @ 2018-09-25 20:08:51
我不会啊QAQ
大佬您肯定会的~ @memset0
by memset0 @ 2018-09-25 20:27:28
@假装老船长 喵... memset0 很菜的说....
by 吹雪吹雪吹 @ 2018-09-25 20:31:28
@memset0 您又fAKe喵,您一定会的poi,