Kruskal 重构树

Kruskal 重构树

解决的基本问题:一张图中 uv 路径上最大边的最小值。

构建:在从小到大加边的过程中,如果 u, v 不在一个并查集中,就建立一个新的节点 X,并将 fufv 分别作为 X 的左右儿子, X 的点权就是这条边的边权。这样树,我们称为 Kruskal 重构树。

Kruskal 重构树有如下重要性质:

  • Kruskal 重构树是一颗二叉树。
  • 两点 uv 的最近公共祖先 LCA(u,v) 的点权为原图中从 uv 满足最大边最小的路径上的边的最大值。
  • 任意点的权值大于左右儿子的权值,是一个大根堆(若边权从大到小排序,则为小根堆)。
  • Kruskal 重构树整棵树的根就是最后所建的结点。
  • 若原图不连通,即建出的是一个森林,那么就遍历每个节点,找到其并查集的根作为其所在树的根。

SOJ - Network:重构树板子

SOJ - 神奇的花园:重构树+启发式合并

posted @   superl61  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示