首页 > 其他分享 >「学习笔记」Kruskal 重构树

「学习笔记」Kruskal 重构树

时间:2022-08-18 16:46:46浏览次数:52  
标签:重构 Kruskal 路径 笔记 集合 节点 边权

前置芝士:最小生成树、Kruskal 算法、瓶颈(图上路径最值)

正文

定义

在执行 Kruskal 算法的过程中我们会从小到大加入若干条边,现在我们仍然按照这个顺序。

首先新建 \(n\) 个集合,每个集合恰有一个节点,点权为 \(0\)。

每一次加边会合并两个集合,我们可以新建一个点,点权为加入边的边权,同时将两个集合的根节点分别设为新建点的左儿子和右儿子。

然后我们将两个集合和新建点合并成一个集合,将新建点设为根。

不难发现,在进行 \(n-1\) 轮之后我们得到了一棵恰有 \(n\) 个叶子的二叉树,同时每个非叶子节点恰好有两个儿子。

这棵树就叫 Kruskal 重构树。

举个栗子:

(图源自 OI Wiki)

这张图的 Kruskal 重构树如下:

(图源自 OI Wiki)

性质

不难发现,原图中两个点之间的所有简单路径上最大边权的最小值最小生成树上两个点之间的简单路径上的最大值 等于 Kruskal 重构树上两点之间的 LCA 的权值

也就是说,到点 \(x\) 的简单路径上最大边权的最小值小于等于 \(val\) 的所有点 \(y\) 均在 Kruskal 重构树上的某一棵子树内,且恰好为该子树的所有叶子节点。

我们在 Kruskal 重构树上找到 \(x\) 到根的路径上权值小于等于 \(val\) 的最浅的节点。显然这就是所有满足条件的节点所在的子树的根节点。

如果需要求原图中两个点之间的所有简单路径上最小边权的最大值,则在跑 Kruskal 的过程中按边权大到小的顺序加边。

END.

标签:重构,Kruskal,路径,笔记,集合,节点,边权
From: https://www.cnblogs.com/cantorsort2919/p/16599227.html

相关文章

  • 关于Windows11笔记本打开TXT文件提示“包无法进行更新、相关性和冲突验证”的解决方法
    如标题,错误提示如下图:解决方法:PS:遇到这个问题时在网上搜索了很多帖子,基本都是说把txt文件的默认应用程序设置成记事本,其实系统的默认应用程序本来就是使用记事本打开,所......
  • Linux 运维项目发布指令笔记
    安装xsheel7 如果安装以后显示“该版本是一个beta测试版本”修改本地时间到一个比较早的时间以后再安装可以破除此问题指令:1.ps-ef|grepjava    查看进程......
  • [学习笔记] Berlekamp-Massey 算法
    都2202年了,现代OIer早该会会了!参考了此博客。引入Berlekamp-Massey算法,又称为BM算法,其可以在\(O(n^2)\)时间内求解一个长度为\(n\)的数列的最短线性递推式。......
  • 「学习笔记」Z 函数(扩展 KMP)
    前置芝士:KMP算法正文本文涉及的字符串下标以\(0\)为起点。对于个长度为\(n\)的字符串\(s\)。定义函数\(z(i)\)表示\(s\)和\(s_{i\simn-1}\)(即以\(s_i\)开......
  • Vue学习笔记4-项目开发规范及插件
    Vue学习笔记4-项目开发规范及插件一、安装插件首先搜索安装ESLint和Prettier这两个插件。这里对开发规范的配置仅配置ESLint,对代码格式的配置仅配置Prettier,用于代......
  • 针对`Code View`友好的代码重构方法
    针对CodeView友好的代码重构方法本文记录在开发过程中,写出对CodeReView友好代码的若干方法。抽取函数将较为独立的语句抽取为函数,是一种很常见的重构手段,本文在此基......
  • 《伯恩斯焦虑自助疗法》读书笔记3
      每日情绪日志       基于逻辑的语义疗法,包括过程结果法和语义法。  过程结果法:你可以根据你投入的努力过程,来评价自己的结果,过程和结果同样重要。......
  • 部分功能实现笔记
    部分功能实现笔记以下内容均来自武沛齐老师的课程笔记Fields的选择classMyForm(ModelForm):xx=form.CharField*("...")#新加不在数据库中的字段classMe......
  • 02.JavaScript学习笔记1
    JavaScript学习笔记1.强制类型转换当使用加号进行运算时,会将数字强制转换为字符串,然后再进行运算。constyear='1991';console.log(year+18);console.log(typeo......
  • 1009 Forsaken喜欢独一无二的树 删边找唯一kruskal生成树
     链接:https://ac.nowcoder.com/acm/contest/26077/1009来源:牛客网题目描述       众所周知,最小生成树是指使图中所有节点连通且边......