最小生成树证明

Prim:

1.png

证明:(人话):

2.png
在这个图中 假设当前距离集合最短边是u>v, 那么假设它不在任意一棵最小生成树中
那么 在最小生成树中,u>v必然存在其他边相连,并且在这之中,一定存在从集合到外的一条边(横跨切割的边)x>y,(因为u,v不在一个集合中,如果不存在 那就不可能走出集合)

我们把u>v换上去,把x>y换下来,构造生成树。
由于 当前距离集合最短边是u>v,
w[u>v]<=w[x>y]
所以新构造的生成树权值<=最小生成树 故这棵树仍然是最小生成树,
因此加入u>v一定是在最小生成树中的。(又叫安全边)

kruskal:

3.png
证明:
若不选u>v,
那么 在最小生成树中,u>v必然存在其他边相连,并且在这之中,一定存在权值更大x>y,(因为u,v当前不连通,如果不存在 那就不可能连通)

那么同样构造最小生成树,把u>v换上去,把x>y换下来,
权值仍然<=最小生成树权值
说明这是一棵最小生成树。


不断加入u>v,能够保证当前一定是最小生成树的子集。故正确。

posted @   hhhhhua  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示