最大化连接图中要切割的边数
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找到图中的任何生成树,因为生成树是连通的,我们可以删除所有其他边。
这个问题与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找到图中的任何生成树,因为生成树是连通的,我们可以删除所有其他边。