最大化要在连接图中切割的边数

时间:2019-11-07 16:46:45

标签: algorithm data-structures graph-theory undirected-graph tarjans-algorithm

这个问题与Leetcode's Critical Connections in a Network非常相似。给定一个无向图,我们想找到所有桥梁。如果将无向连接的图中的边移除会断开图的连接,则该边为 bridge

变体

我想最大化,而不是查找所有桥,以消除要连接的边数,以便图形保持连接状态。

示例1

Input: n = 5, edges = [[1, 2], [1, 3], [3, 4], [1, 4], [4, 5]]

Output: 1

首先,我可以删除[3,4][1,3][1,4]。接下来,在除去这3条边中的任意一条之后,其余边都是桥。因此,要使图形保持连接状态,要删除的最大边数为1。

示例2

Input: n = 6, edges = [[1, 2], [1, 3], [2, 3], [2, 4], [2, 5], [4, 6], [5, 6]]

Output: 2

1 个答案:

答案 0 :(得分:3)

这很容易,如果我们在连接的图中具有E个边和N个节点,则可以删除E-N+1个边,从而使图保持连接状态。

如何执行此操作?:

只需执行DFS / BFS即可找到该图的任何生成树,因为生成树已连接,所以我们可以删除所有其他边。