如果只有区间取max,区间求和,下面这份代码保证复杂度吗?
void upd(int o, int l, int r, int L, int R, int v) {
if(L <= l && r <= R && tr[o].mn == tr[o].mx) {
return ptg(o, max(0, v - tr[o].mn)), void();
}
int mid = (l + r) >> 1;
pd(o);
if(L <= mid) upd(o << 1, l, mid, L, R, v);
if(R > mid) upd(o << 1 | 1, mid + 1, r, L, R, v);
up(o);
}