algorithm - 向图中添加新边并在 O(n) 中找到新的生成树

标签 algorithm graph-theory

假设给定图 G 的最小生成树 T(n 顶点和 m 条边)和我们将添加到 G 的权重为 w 的新边 e = (u, v)。 给出一个有效的算法来找到图 G + e 的最小生成树。 您的算法应该在 O(n) 时间内运行才能获得全部分数。

(c) 来自 Skiena 手册

从 u 或 v 开始 Prim 或 Kruskal 算法,直到我们到达给定生成树路径的片段?似乎新的生成树不会从一条新边上发生太大变化。

最佳答案

确定G中新边的端点之间的路径。如果该路径中的最大长度边大于新边的最大长度,则将其替换为新边。这在 O(N) 时间内运行。

来源:Trail Maintenance IOI 2003

关于algorithm - 向图中添加新边并在 O(n) 中找到新的生成树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809448/

相关文章:

linux - 有没有更好的方法从 arp 表中获取 mac 地址?

algorithm - 基于1对1选择的协同排序算法

c# - 将字符串 Id 转换为唯一的 Guid(或从 md5 转换为 Guid)?

algorithm - 网络中心性算法的复杂性

algorithm - 具有节点和边权重的图中的最优路径

algorithm - 如果不是双线性插值,这是什么技术?

python - 使用python从图像中提取线条

algorithm - 如何在不丢失现有路径的情况下从有向图中删除顶点?

algorithm - 如何找到有向图中的最小顶点集,以便可以到达所有其他顶点

algorithm - 如果没有循环,如果权重为负,是否可以使用 Dijkstra 算法?