2

今天我了解了图中的关节点和桥梁(基本上是无向的)。

我读到的文字(史蒂文·哈利姆的一本书)说

当我们在顶点u并且v是它的邻居时,那么如果dfs_low(v) >= dfs_num(u)thenu是一个割顶点。

然而 ,

dfs_low(v) > dfs_num(u)在检查桥梁时条件变为。

但我无法弄清楚为什么平等从第二种情况(在桥梁中)消失了。请帮我解决一下这个。

PS:dfs_num(i)对 dfs 中看到的顶点进行编号。

dfs_low(i)告诉除其父级之外的 i 可到达的编号最小的顶点。

4

1 回答 1

3

假设在所考虑的情况下 u 是一个关节点但 uv 不是一个桥。然后将存在从 v 到 u 的路径,而不是通过 uv 链接;因此,从包含 u 的双连通分量传递到包含 v 的 DFS 最终将再次到达 u,提供 中的相等性dfs_low(v) >= dfs_num(u)。(不等式的大于部分发生是因为 u 是一个关节点,因此从 v 开始的路径不经过 u 就无法到达编号较低的顶点,并且 DFS 不会回溯此类路径。)

但是如果 uv 也是一座桥,那么在 v 和 u 之间除了通过桥 uv 之外不会存在任何其他路径。所以 DFS 将永远不会再到达你;并且 DFS 达到 v 之后的所有dfs_num值都将严格大于dfs_num(u)

于 2013-08-31T21:18:51.047 回答