Kru重构树
Kru 重构树
https://www.luogu.com.cn/blog/me-immortal/kruskal-chong-gou-shu
https://www.luogu.com.cn/blog/mywd-ylyy/kruskal-zhong-gou-shu
构造的过程很像 $kru$ 生成树
解决 从A点走到B点的所有路径中,最长的边最小值是多少 这类问题
考虑 $(u,v)=w$
我们新建节点 $T$,$T$ 的点权为 $w$,建边 $(u,T)=(v,T)=0$
?性质
-
是一棵二叉树,点数 $2 \times n-1$
-
若边权升序,则它是一个大根堆
-
原图中两个点间所有路径上的边最大权值的最小值 = 最小生成树上两点简单路径的边最大权值= Kruskal 重构树上两点 LCA 的点权
-
重构树中代表原树中的点的节点全是叶子节点,其余节点都代表了一条边的边权
关于第三点,边权越大,其对应的点 $T_{(u,v)}$ 的 $dep$ 越小,证明显然
新点的点权的含义就是左右子树中的点想要互通,必须要走至少一条边权等于这个点权的边
?problem
模板题
改成最大 $kru$ 重构树即可
1 | const int N=3e4+10,M=5e4+10; |
考虑答案路径 $P$
$P=(u,v)+(v,1)$,前面一段开车,后面一段走路
双条件,分解条件
先考虑海拔,即第一段 $(u,v)$ 这一段的路径长度是不管的
再考虑 $(v,1)$,既然已经下车了,这就是个单源最短路
题目要求回到 $1$,为什么不是任意的点对 $(u,v)$,这就说明需要对 $1$ 有一些特殊处理!!
我们现在就是要找到这个 $v$
$v$ 满足的性质是,从 $u$ 走到 $v$,最小边权 $\gt p$,$d_v$ ($1 \to v$ 的最短路) 最小
这就是一个典型的 $kru$ 重构树问题,维护重构树内部最小值即可
每次暴力往上跳,直到 $val_{fa_{x,k}} \leq p$
1 | const int N=4e5+10,M=4e5+10; |
- 标题: Kru重构树
- 作者: xyzfrozen
- 创建于 : 2023-10-13 23:15:44
- 更新于 : 2023-10-13 23:17:18
- 链接: https://xyzfrozen.github.io/undefined/Kru重构树/Kru重构树/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。