社区讨论
警示后人
P5344【XR-1】逛森林参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m54p8uxs
- 此快照首次捕获于
- 2024/12/26 10:23 去年
- 此快照最后确认于
- 2025/11/04 12:21 4 个月前
倍增跳跃的过程中,一定要特别注意特殊情况的处理,多连几条边也不少连,有以下几种可能出错的特殊情况:
- ,这时候必须用原图上的点 连边。
- 同步深度后,如果 ,直接退出,不要在 的倍增虚拟节点上连边。
- 同步深度后,如果 LCA 就是它们的直接父亲,不能只在原图上它们的父亲节点上连边,否则不会包含 ,应该连接 的倍增虚拟节点 。
注意,如果上述情况下一开始就有 深度相同,那么 同时不被包含。
原错误代码:
CPPif(in) add_edge(to, fa[u][0].to);
else add_edge(fa[u][0].to, to);
更正后代码:
CPPif(in){
add_edge(to, fa[u][0].in);
add_edge(to, fa[v][0].in);
}else{
add_edge(fa[u][0].out, to);
add_edge(fa[v][0].out, to);
}
Hack 数据
输入 #1
PLAIN3 2 1
2 1 2 100
1 2 2 3 3 2
输出 #1
PLAIN0 100 102
输入 #2
PLAIN4 2 2
2 1 2 100
1 1 1 3 3 2
输出 #2
PLAIN100 0 102 -1
输入 #3
PLAIN4 3 1
2 1 2 100
2 2 3 20
1 2 3 4 4 3
输出 #3
PLAIN0 100 120 103
输入 #4
PLAIN4 3 4
2 1 2 100
2 1 3 20
1 2 3 4 4 3
输出 #4
PLAIN3 3 3 0
回复
共 3 条回复,欢迎继续交流。
正在加载回复...