【发布时间】:2019-10-26 13:32:25
【问题描述】:
这是一个复习问题,我正在尝试了解我的答案是否正确。
这是原始问题的要点:
您有一个加权无向图的 MST,T,然后在节点(u 和 v)之间的原始图中引入一条新边以创建新图 G'。给出一个线性时间算法来确定 T 是否是 G' 的 MST。
我的回答:
原始图的MST T 不包含任何循环。从节点 u 到节点 v 应该只有一条路径。我们可以将新边添加到我们的 MST 中,这可以在 O(1) 时间内完成以生成我们的新树 T'。然后,我们可以在 T' 上从 u 到 v 运行 DFS,在 O(|V| + |E|) 时间内完成。添加新边后,我们应该在 u 和 v 之间获得最多 2 条路径。一条将使用新边,一条不使用。我们可以在 O(1) 时间内比较这两条路径。如果两者中较短的一个使用新边,那么我们知道原始 MST“T”不是新图 G' 的 MST。我们的整个算法将在线性时间内完成。
【问题讨论】:
标签: algorithm search time-complexity depth-first-search minimum-spanning-tree