问(违规紫衫)
查看原帖
问(违规紫衫)
933020
违规用户名933020楼主2024/12/27 20:39

今天做题目,做到P1198 [JSOI2008] 最大数时,用了一个玄学代码(正解线段树):

#include<bits/stdc++.h>
using namespace std;
ll a[200001];
int main(){
	//freopen("zds.in","r",stdin);
	//freopen("zds.out","w",stdout);
	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;
	//fclose(stdin);fclose(stdout);
}

请dalao帮我看看,我这是什么代码,能AK

2024/12/27 20:39
加载中...