Kruskal重构树学习笔记
瓶颈路
两点间所有路径中 \(\max(w)\) 最小或 \(\min(w)\) 最大的路径称为最小/最大瓶颈路。
Kruskal 重构树
考虑 kruskal 算法的贪心过程,注意到一张图的一个最小生成树是同时也是该图的最小瓶颈生成树,也就是说树上连接两点的简单路径必然是一条两点间的最小瓶颈路。最大同理。
注意到直接在最小生成树上运算十分繁琐,我们考虑将最小生成树重构成一棵 leafy tree:在 Kruskal Algorithm 的过程中,当我们要用一条边连通两个连通快时,新建一个点权为边权的点,将代表两个连通块的点设为该点的左右儿子,然后让新建的这个点代表整个连通块。
显然有任意两点间的瓶颈路长度为其 LCA 的点权。
以上是维护边权最值,如果要维护点权最值,那么我们可以让连接两点的边的权为这两点的点权的最值。见 [IOI2018] werewolf 狼人。