注意线段树合并的时候有可能要更新叶子的下标
如
int merge(int p, int q){
if(!p || !q)return p + q;
if(t[p].l == t[p].r){
t[p].maxx.maxx += t[q].maxx.maxx;
}
else{
t[p].ls = merge(t[p].ls, t[q].ls);
t[p].rs = merge(t[p].rs, t[q].rs);
renew(p);
}
return p;
}
t[p].maxx.id 也要更新