【发布时间】:2018-05-16 13:22:38
【问题描述】:
我有一个不规则图 G=(V,E) 和权重函数 w:E->R+。另外,我有 G 的 MST T。
我必须构建一个执行以下操作的算法:
如果我们向 E 添加一个权重为 w(e') 的新边 e'。建议使用一种算法更新 T,使其成为新图 G'=(V,EUe') 的 MST。
复杂度:O(V)。
我的建议是:
1) 将 e' 添加到 T。我们得到一个名为 T' 的新图,其中包含一个循环。
2) 在 T' 上运行 DFS 并标记您访问的每个顶点。另外保存
堆栈中的每个顶点和每个边的权重。
3) 当我们访问一个已经访问过的顶点时,我们停止运行。
4) 并开始从堆栈中退出,直到我们到达我们停止的顶点。
5)在撤回时,我们保存我们从撤回的最大边权重
堆栈。
6) 如果最大边权重大于 w(e'),我们将替换它们。
7) 否则我们保持相同的 T。
我希望它很清楚。
如果有人能告诉我它是否有效或给我其他的,我将不胜感激
解决方案和建议。
【问题讨论】:
标签: algorithm graph graph-algorithm genetic-algorithm minimum-spanning-tree