社区讨论

WA on 2,5,8,9,10;用的树状数组

P1531I Hate It参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhk2hmx2
此快照首次捕获于
2025/11/04 12:26
4 个月前
此快照最后确认于
2025/11/04 12:26
4 个月前
查看原帖

求调QAQ

CPP
#include<iostream>
using namespace std;
int n,m,a,b;char c;
int lis[202559]={0},tre[202559]={0};
inline int lbt(int x){return x&(-x);}
inline void ad(int id,int score){
	if(lis[id]<score){
		lis[id]=score;
		while(id<=n){
			tre[id]=score;
			for(int i=1;i<lbt(id);i<<=1){
				if(tre[id]<tre[id-i]){tre[id]=tre[id-i];}
			}
			id+=lbt(id);
		}
	}
	return ;
}
inline int qjm(int left,int right){
	int ma=-1;
	while(left<=right){
		if(ma<lis[right]){ma=lis[right];}
		right--;
		while(right-left>=lbt(right)){
			if(ma<tre[right]){ma=tre[right];}
			right-=lbt(right);
		}
	}
	return ma;
}
int main(){
	scanf("%d %d",&n,&m);
	for(int i=1,a;i<=n;i++){
		scanf("%d",&a);
		ad(i,a);
	}
	while(m--){
		scanf(" %c %d %d",&c,&a,&b);
		if(c=='Q'){
			printf("%d\n",qjm(a,b));
		}else if(c=='U'){
			ad(a,b);
		}
	}
	return/*结束*/0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...