今天做题目,做到P1198 [JSOI2008] 最大数时,用了一个玄学代码(正解线段树):
#include<bits/stdc++.h>
using namespace std;
ll a[200001];
int main(){
ll i,j,n,m,k=0,x,strl=0;
cin>>n>>m;
for(i=1;i<=n;i++){
char l;
cin>>l>>x;
if(l=='A'){
x=(x+k)%m;
for(j=strl;j>=1;j--){
if(x>a[j]){
a[j]=x;
}
else{
break;
}
}
strl++;
a[strl]=x;
}
else{
cout<<a[strl-x+1]<<endl;
k=a[strl-x+1];
}
}
return 0;
}
请dalao帮我看看,我这是什么代码,能AK