裸题..
开始的代码有个bug,开始的build()
函数是这样写的:
void build(int u,int l,int r){
tr[u].l=l,tr[u].r=r;
if(l==r){
tr[u].mx=tr[u].sum=val[l];
return;
};
int mid=(l+r)>>1;
build(ls,l,mid);
build(rs,mid+1,r);
pushup(u);
}
这样写为