社区讨论
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 条回复,欢迎继续交流。
正在加载回复...