进食后人,如果你线段树只AC#2
查看原帖
进食后人,如果你线段树只AC#2
765294
omclude楼主2024/11/12 13:01

update的时候,区间不要搞混

void update(int l, int r, int p = 1, int cl = 1, int cr = n) {
		if (cl >= l && cr <= r) {
			tree[p] = (r - l + 1) - tree[p]; //应为tree[p] = (cr - cl + 1) - tree[p]
			mark[p] ^= 1;
			return ;
		}
		push_down(p, cl, cr);
		int mid = (cl + cr) >> 1;
		if (mid >= l) update(l, r, ls(p), cl, mid);
		if (mid < r) update(l, r, rs(p), mid + 1, cr);
		tree[p] = tree[ls(p)] + tree[rs(p)];
	}
2024/11/12 13:01
加载中...