线段树,全mle求调(哭)
查看原帖
线段树,全mle求调(哭)
1052499
Em0ty楼主2024/10/17 16:21
#include<bits/stdc++.h>
#define N 200010
using namespace std;
int cnt;
inline int lch(int p){return p<<1;}
inline int rch(int p){return p<<1|1;}
int tree[N<<2];
inline int pushup(int p){
	tree[p]=max(tree[lch(p)],tree[rch(p)]);
}
inline void pushdown(int p,int l,int r,int ck,int v){
	int mid = (l+r)>>1;
	if(l==r){
		tree[p]=v;
		return ;
	}
	if(ck<=mid) pushdown(lch(p),l,mid,ck,v);
	else pushdown(rch(p),mid+1,r,ck,v);
	pushup(p);
}
inline int query(int p,int l,int r,int L,int R){
	if(L<=l&&r<=R) return tree[p];
	int mid = (l+r)>>1;
	int ans = 0;
	if(L<=mid){
		return query(lch(p),l,mid,L,R);
	}
	if(mid<R){
		return query(rch(p),mid+1,r,L,R);
	}
}
int main(){
	int M,D,pr=0;
	scanf("%d%d",&M,&D);
	while(M--){
		char s;
		int n;
		cin >> s >> n;
		if(s=='A'){
			cnt++;
			pushdown(1,1,M,cnt,(n+pr)%D);
		}
		else{
			pr = query(1,1,M,cnt-n+1,cnt);
			printf("%d\n",pr);
		}
	}
	
	return 0;
}

2024/10/17 16:21
加载中...