线段数求调0pts

P3372 【模板】线段树 1

@[I_AK_IOI_2029](/user/471585) 你的change和query问题很大; 我这里附上我的代码: ```cpp void add(int& p, int l, int r, int x, int y, ll d) { if (!p) p = ++cnt; if (x <= l && r <= y) { t[p].sum += d * (r - l + 1); t[p].tag += d; return; } pushdown(p, l, r); int mid = (l + r) >> 1; if (x <= mid) add(t[p].l, l, mid, x, y, d); if (mid < y) add(t[p].r, mid + 1, r, x, y, d); pushup(p); } ll query(int& p, int l, int r, int x, int y) { if (!p) p = ++cnt; if (x <= l && r <= y) return t[p].sum; pushdown(p, l, r); int mid = (l + r) >> 1; ll sum = 0; if (x <= mid) sum += query(t[p].l, l, mid, x, y); if (mid < y) sum += query(t[p].r, mid + 1, r, x, y); return sum; } ``` 你自己看吧。
by __PRO__ @ 2024-01-13 16:01:29


|