线段树写法
int T[maxn],a[maxn];
void build(int rt,int l,int r){
if(l == r){
T[rt] = a[l];
return;
}
int mid = l+r >> 1;
build(rt<<1,l,mid);
build(rt<<1|1,mid+1,r);
T[rt] = max(T[rt<<1],T[rt<<1|1]);
}
void modify(int rt,int l,int r,int pos,int val){
if(l == r){
T[rt] = val;
return;
}
int mid = l+r >> 1;
if(pos <= mid) modify(rt<<1,l,mid,pos,val);
else modify(rt<<1|1,mid+1,r,pos,val);
T[rt] = max(T[rt<<1],T[rt<<1|1]);
}
int query(int rt,int l,int r,int L,int R){
if(L <= l && r <= R) return T[rt];
int mid = l+r >> 1;
if(R <= mid) return query(rt<<1,l,mid,L,R);
if(L > mid) return query(rt<<1|1,mid+1,r,L,R);
return max(query(rt<<1,l,mid,L,R),query(rt<<1|1,mid+1,r,L,R));
}
人就像命运下的蝼蚁,谁也无法操控自己的人生.

浙公网安备 33010602011771号