zhlzt @ 2024-07-23 19:19:37
#include<bits/stdc++.h>
using namespace std;
#define low lower_bound
const int maxn=4e4+10;
const int maxm=40;
int belong[maxn],uni[maxn];
int sta[maxm],fin[maxm];
int book[maxn],w[maxn];
int cnt[maxm][maxm][maxn],dp[maxm][maxm];
int query(int l,int r){
int pl=belong[l],pr=belong[r];
int ans=dp[pl+1][pr-1];
int app=cnt[pl+1][pr-1][ans];
if(pl==pr){
for(int i=l;i<=r;i++){
cnt[pl+1][pr-1][uni[i]]++;
if(cnt[pl+1][pr-1][uni[i]]>app){
ans=uni[i];
app=cnt[pl+1][pr-1][uni[i]]+1;
}
else if(cnt[pl+1][pr-1][uni[i]]==app){
if(uni[i]<ans) ans=uni[i];
}
}
for(int i=l;i<=r;i++){
cnt[pl+1][pr-1][uni[i]]--;
}
} else {
for(int i=l;i<=fin[pl];i++){
cnt[pl+1][pr-1][uni[i]]++;
if(cnt[pl+1][pr-1][uni[i]]>app){
ans=uni[i];
app=cnt[pl+1][pr-1][uni[i]];
}
else if(cnt[pl+1][pr-1][uni[i]]==app){
if(uni[i]<ans) ans=uni[i];
}
}
for(int i=sta[pr];i<=r;i++){
cnt[pl+1][pr-1][uni[i]]++;
if(cnt[pl+1][pr-1][uni[i]]>app){
ans=uni[i];
app=cnt[pl+1][pr-1][uni[i]];
}
else if(cnt[pl+1][pr-1][uni[i]]==app){
if(uni[i]<ans) ans=uni[i];
}
}
for(int i=l;i<=fin[pl];i++){
cnt[pl+1][pr-1][uni[i]]--;
}
for(int i=sta[pr];i<=r;i++){
cnt[pl+1][pr-1][uni[i]]--;
}
}
return ans;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;cin>>n; int m;cin>>m;
for(int i=1;i<=n;i++) cin>>w[i];
for(int i=1;i<=n;i++) book[i]=w[i];
sort(book+1,book+1+n);
int pos=unique(book+1,book+1+n)-book-1;
for(int i=1;i<=n;i++){
uni[i]=low(book+1,book+1+pos,w[i])-book;
}
int len=(int)pow(1.0*n,1.0/3*2);
for(int i=1;i<=n;i++){
belong[i]=(i+len-1)/len;
}
int tot=belong[n];
for(int i=1;i<=tot;i++){
sta[i]=len*(i-1)+1; fin[i]=min(n,len*i);
}
for(int i=1;i<=tot;i++){
for(int j=i;j<=tot;j++){
for(int k=sta[i];k<=fin[j];k++){
cnt[i][j][uni[k]]++;
}
for(int k=1;k<=pos;k++){
int pre=dp[i][j];
if(cnt[i][j][k]>cnt[i][j][pre]) dp[i][j]=k;
}
}
}
int last=0;
for(int t=1;t<=m;t++){
int l,r;cin>>l>>r;
l=(l+last-1)%n+1; r=(r+last-1)%n+1;
if(l>r) swap(l,r);
last=book[query(l,r)];
cout<<last<<'\n';
}
return 0;
}
by Fish_ht @ 2024-07-23 19:30:26
@zhlzt 直接在原数组离散化
by zhlzt @ 2024-07-23 19:33:55
@Fish_ht 所以为什么?
by Fish_ht @ 2024-07-23 19:37:31
@zhlzt 因为你求的就是离散化后的下标
by zhlzt @ 2024-07-23 19:38:19
@Fish_ht 所以我为什么会挂?
by zhlzt @ 2024-07-23 19:41:16
@Fish_ht 在吗?对不起打扰您了。
by zhlzt @ 2024-07-23 19:44:16
还请巨佬解答一下。
by Fish_ht @ 2024-07-23 19:46:44
@zhlzt 在