【问题标题】:Maximise number of edges to cut in connected graph最大化连接图中要切割的边数
【发布时间】:2020-03-04 07:30:18
【问题描述】:

这个问题与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

【问题讨论】:

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


【解决方案1】:

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

如何做到这一点?:

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

【讨论】:

  • 这是正确答案。请注意,如果您只希望输出是要删除的 number 个边,那么您不需要构造生成树; E - N + 1 永远是答案。
猜你喜欢
  • 2020-12-11
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多