社区讨论

警示后人

P6329【模板】点分树 / 震波参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m3d0pkwh
此快照首次捕获于
2024/11/11 20:46
去年
此快照最后确认于
2025/11/04 14:53
4 个月前
查看原帖
如果你TLE on #1 #2 #4 #6 #10
可能是你的线段树写炸了(虽然我也不知道为什么能过这么多点
具体来说,这份 queryquery 是错的
CPP
int query (int p, int l, int r, int L, int R)
{
    if (!p) return 0;
    if (L <= l && r <= R) return val (p);
    int mid = (l + r) >> 1;
    if (l <= mid && r <= mid) return query (ls (p), l, mid, L, R);
    else if (l > mid && r > mid) return query (rs (p), mid + 1, r, L, R);
    else return query (ls (p), l, mid, L, R) + query (rs (p), mid + 1, r, L, R);
}
应该是
CPP
int query (int p, int l, int r, int L, int R)
{
	if (!p) return 0;
	if (L <= l && r <= R) return val (p);
	int mid = (l + r) >> 1;
	if (L <= mid && R <= mid) return query (ls (p), l, mid, L, R);
	else if (L > mid && R > mid) return query (rs (p), mid + 1, r, L, R);
	else return query (ls (p), l, mid, L, R) + query (rs (p), mid + 1, r, L, R);
}

回复

2 条回复,欢迎继续交流。

正在加载回复...