全WA!求助!
查看原帖
全WA!求助!
762837
msht2006楼主2023/10/31 20:26

两个版本都不过

版本1

#include<cstdio>
#define maxn 100010
int t;
int Q,M;
int m[maxn];
int operation[maxn];
int tr[maxn<<2];
void PushUp(int rt){
	tr[rt]=(tr[rt<<1]*tr[rt<<1|1])%M;
}
void Build(int l,int r,int rt){
	tr[rt]=1;
	if(l==r){
		tr[rt]=m[l];
		return;
	}
	int mid=(l+r)>>1;
	Build(l,mid,rt<<1);
	Build(mid+1,r,rt<<1|1);
	PushUp(rt);
}
void Update(int Pos,int l,int r,int rt,int C){
	if(l==r){
		tr[rt]=C;
		return;
	}
	int mid=(l+r)>>1;
	if(Pos<=mid)Update(Pos,l,mid,rt<<1,C);
	else Update(Pos,mid+1,r,rt<<1|1,C);
	PushUp(rt);
}
int main(){
	scanf("%d",&t);
	for(int NUM=0;NUM<t;NUM++){
		scanf("%d%d",&Q,&M);
		for(int i=1;i<=Q;i++)m[i]=1;
		Build(1,Q,1);
		for(int i=1;i<=Q;i++){
			int op;
			scanf("%d%d",&op,&m[i]);
			if(op==1)
				Update(i,1,Q,1,m[i]);
			else if(op==2)
				Update(m[i],1,Q,1,1);
			printf("%d\n",tr[1]);
		}
	}
}

版本2

#include<cstdio>
#define maxn 100010
int t;
int Q,M;
int m[maxn];
int operation[maxn];
int tr[maxn<<2];
void PushUp(int rt){
	tr[rt]=(tr[rt<<1]*tr[rt<<1|1])%M;
}
void Build(int l,int r,int rt){
	tr[rt]=1;
	if(l==r){
		tr[rt]=m[l];
		return;
	}
	int mid=(l+r)>>1;
	Build(l,mid,rt<<1);
	Build(mid+1,r,rt<<1|1);
	PushUp(rt);
}
void Update(int Pos,int l,int r,int rt){
	if(l==r){
		tr[rt]=1;
		return;
	}
	int mid=(l+r)>>1;
	if(Pos<=mid)Update(Pos,l,mid,rt<<1);
	else Update(Pos,mid+1,r,rt<<1|1);
	PushUp(rt);
}
int Query(int L,int R,int l,int r,int rt){
	if(L<=l&&r<=R)return tr[rt];
	int mid=(l+r)>>1;
	int ANS=1;
	if(L<=mid)ANS=(ANS*Query(L,R,l,mid,rt<<1))%M;
	if(mid<R)ANS=(ANS*Query(L,R,mid+1,r,rt<<1|1))%M;
	return ANS;
}
int main(){
	scanf("%d",&t);
	for(int NUM=0;NUM<t;NUM++){
		scanf("%d%d",&Q,&M);
		for(int i=1;i<=Q;i++){
			int op;
			operation[i]=0;
			scanf("%d%d",&op,&m[i]);
			if(op==2){
				operation[i]=m[i];
				m[i]=1;
			}
		}
		Build(1,Q,1);
		for(int i=1;i<=Q;i++){
			for(;!operation[i]&&i<=Q;i++)printf("%d\n",Query(1,i,1,Q,1));
			Update(operation[i],1,Q,1);
			printf("%d\n",Query(1,i,1,Q,1));
		}
	}
}

本人已试过将
int改成long long, 但还是全WA QAQ

2023/10/31 20:26
加载中...