无向图算法

时间:2013-10-04 05:14:58

标签: algorithm graph nodes

假设我们有一个n节点,m边无向图G =(V; E),我们有两个不同的节点 叫做s和t。假设s和t之间的距离严格大于n / 2 。显示那里 是一个节点v,它与s和t不同,因此从s到t的每条路径都经过v。 给出一个运行时间为O(n + m)的算法来找到这样一个顶点。你不必 证明你的算法是正确的,但你必须证明像v这样的顶点存在。

我无法弄清楚过去论文问题的确切答案,请帮帮我!

1 个答案:

答案 0 :(得分:1)

假设s和t之间有两条路径,它们不共享一个节点。因为s和t之间的距离> n / 2,每个路径在s和t之间具有> = n / 2个节点。这意味着图表具有> = n + 2个节点,这是一个矛盾。

对于算法,找到任何路径就足够了,而不是在不使用路径节点的情况下查看连接到一侧的子图的位置。更多细节:

  • 如果s仅连接到一个节点而不是我们正在寻找的节点。
  • 如果没有,请从s
  • 制作BFS
  • 查找路径s-t
  • 查找连接到s的节点,而不使用来自路径s-t
  • 的节点的边
  • 连接部分中路径s-t上的最后一个节点是我们正在寻找的节点。