警示后人
查看原帖
警示后人
620018
_IceCream_楼主2024/5/6 14:53

如果你 WA 了,那么检查一下你的 Query 函数,不能直接 Merge 上去,要分类讨论。

// AC
Seg query (int node, int l, int r, int s, int t) {
	if (s <= l && r <= t) return tree[node];
	
	int mid = l + ((r - l) >> 1);
	if (t <= mid) return query (node << 1, l, mid, s, t);
	else if (s > mid) return query ((node << 1) + 1, mid + 1, r, s, t);
	Seg L = query (node << 1, l, mid, s, t), R = query ((node << 1) + 1, mid + 1, r, s, t);
	return merge (L, R);
}
// WA
Seg query (int node, int l, int r, int s, int t) {
	if (s <= l && r <= t) return tree[node];
	
	int mid = l + ((r - l) >> 1);
	Seg L, R;
	if (s <= mid) L = query (node << 1, l, mid, s, t);
	if (t > mid) R = query ((node << 1) + 1, mid + 1, r, s, t);
	return merge (L, R);
}
2024/5/6 14:53
加载中...