问题描述
给定一个正加权的无向循环图,我怎样才能找到最小的一组边来删除,这将使图成为无环?该算法必须在 O((E+V)logV) 时间内运行。
我试图解决这个问题,并考虑使用 Djikstra 的算法(因为它也在 O(E+VlogV) 时间内运行,但我很不确定如何继续前进。
解决方法
提示一下,一旦你完成了这个,你剩下的必须是一个最大生成树(或最大生成森林,如果原始图没有连接)。特别是:
- 剩下的图必须是非循环的。
- 如果删除的边将现有的连接组件拆分为两个或多个 CC,那么选择不删除两个新 CC 之间的边交叉将留下一个具有较低边删除成本的无环图。
- 由于您将留下一棵生成树,因此您希望该生成树的权重最大,从而最小化删除边的成本。
从这里,看看您是否可以找到计算最大生成树的方法。作为提示,使用现有的最小生成树算法作为黑盒。