wow
查看原帖
wow
559502
TsH_GD楼主2022/11/21 22:07
#include<bits/stdc++.h>

using namespace std;

#define int long long
const int maxn=2e5+10;

int m,p;
int a[maxn];
int len;
int qz;

struct segment_tree{
	struct Node{
		int l,r;
		int sum;
	}tr[maxn*4];
	
	void build(int p,int l,int r){
		tr[p]={l,r,0};
		if(l==r) return ;
		int mid=r+l>>1;
		build(p<<1,l,mid);
		build(p<<1|1,mid+1,r);
	}
	
	int check(int p,int l,int r){
		if(tr[p].l>r||tr[p].r<l) return 0;
		if(tr[p].l>=l&&tr[p].r<=r){
			return tr[p].sum;
		}
		int s=0;
		s=max(s,check(p<<1,l,r));
		s=max(s,check(p<<1|1,l,r));
		return s;
	}
	
	void modify(int u, int x, int v){
		if (tr[u].l == x && tr[u].r == x) tr[u].sum = v;
		else
		{
			int mid = tr[u].l + tr[u].r >> 1;
			modify(u << 1, x, v);
			else modify(u << 1 | 1, x, v);
			tr[u].sum=max(tr[u<<1].sum,tr[u<<1|1].sum);
		}
	}
}ST;

signed main(){
	scanf("%lld %lld",&m,&p);
	ST.build(1,1,m);
	while(m--){
		char zf,x;
		scanf("%s%lld",&zf,&x);
		if(zf=='A'){
			ST.modify(1,len+1,((int)qz+x)%p);
			len++;
		}
		else{
			qz=ST.check(1,len-x+1,len);
			if(x==0) qz=0;
			printf("%lld\n",qz);
		}
	}
}

为啥全wa了,求调

2022/11/21 22:07
加载中...