找到要删除的最小权重边集,这将使图无环

问题描述

给定一个正加权的无向循环图,我怎样才能找到最小的一组边来删除,这将使图成为无环?该算法必须在 O((E+V)logV) 时间内运行。

我试图解决这个问题,并考虑使用 Djikstra 的算法(因为它也在 O(E+VlogV) 时间内运行,但我很不确定如何继续前进。

解决方法

提示一下,一旦你完成了这个,你剩下的必须是一个最大生成树(或最大生成森林,如果原始图没有连接)。特别是:

  1. 剩下的图必须是非循环的。
  2. 如果删除的边将现有的连接组件拆分为两个或多个 CC,那么选择不删除两个新 CC 之间的边交叉将留下一个具有较低边删除成本的无环图。
  3. 由于您将留下一棵生成树,因此您希望该生成树的权重最大,从而最小化删除边的成本。

从这里,看看您是否可以找到计算最大生成树的方法。作为提示,使用现有的最小生成树算法作为黑盒。