萌新求助本机没问题提交全 RE/kk
查看原帖
萌新求助本机没问题提交全 RE/kk
739258
HanazomeMana楼主2023/12/24 19:59
#include<bits/stdc++.h>
#define p2 p<<1
#define p3 p<<1|1
using namespace std;
const int N=2e5+5;
int n,m,a[N],x,y,tr[N*4];
char c;
void build(int l,int r,int p){
	if(l==r)return tr[p]=a[l],void();
	int mid=l+r>>1;
	build(l,mid,p2),build(mid+1,r,p3);
	tr[p]=max(tr[p2],tr[p3]);
}
void update(int l,int r,int k,int p,int v){
	if(k==l&&l==r){
		if(v>tr[p])tr[p]=v;
		return;
	}int mid=l+r>>1;
	if(k<=mid)update(l,mid,k,p2,v);
	else update(mid+1,r,k,p3,v);
	tr[p]=max(tr[p2],tr[p3]);
}
int query(int l,int r,int x,int y,int p){
	if(l==x&&r==y)return tr[p];
	int mid=l+r>>1,ret;
	if(y<=mid)ret=query(l,mid,x,y,p2);
	else if(x>mid)ret=query(mid+1,r,x,y,p3);
	else ret=max(query(l,mid,x,mid,p2),query(mid+1,r,mid+1,y,p3));
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i)cin>>a[i];
	build(1,n,1);
	while(m--){
		cin>>c>>x>>y;
		if(c=='Q')cout<<query(1,n,x,y,1)<<'\n';
		else update(1,n,x,1,y);
	}
	return 0;
}

IDE 测了一下是运行时错误,但是本地运行可以过而且样例是对的看不出来,如果是很脑弹的问题请指出并骂死我()

2023/12/24 19:59
加载中...