作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们给出了给定图 G 的最小生成树 T(有 n 个顶点和 m 个边)和一条权重为 w 的新边 e = (u, v),我们将添加到 G 中。
I) 检查 T 是否仍然是 MST。II) 如果不是,请给出一个有效的算法来找到图 G + e 的最小生成树。
最佳答案
您当前的 MST T
包含n-1
边缘。添加到新边的图表中 e = (u,v)
重量 w
创建恰好一个周期C
图中T + e
(T
添加了边缘 e
)。如果新的边权重( w
)小于本次循环中权重最高的边的权重 C
,那么您可以通过将较高权重的边替换为 e
来创建较低权重的 MST 。否则,您当前的 MST 仍保持最佳状态。
算法基本上是这样的:
P
来自u
至v
在T
e*
在P
具有最大权重 w*
w < w*
?
T' = T - e* + e
是 G + e
的 MST ,weight(T') = weight(T) - w* + w
T' = T
是 G + e
的 MST 关于minimum-spanning-tree - 向图中添加新边并找到新的生成树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798919/
我是一名优秀的程序员,十分优秀!