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

Maximise number of edges to cut in connected graph

这个问题与Leetcode's Critical Connections in a Network非常相似。给定一个无向图,我们想要找到所有的桥。无向连通图中的边是当且仅当删除它会断开图。

变体

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

示例 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

这很简单,如果我们在连通图中有 E 条边和 N 条节点,我们可以删除 E-N+1 条边,使图保持连通。

如何操作?:

只要DFS/BFS找到图中的任何生成树,因为生成树是连通的,我们可以删除所有其他边。