Algorithm 无向图算法
假设我们有一个n-节点,m-边无向图G=(V;E),我们有两个不同的节点 叫做s和t。假设s和t之间的距离严格大于n/2 . 显示在那里 是一个与s和t不同的节点v,因此从s到t的每条路径都经过v。 给出一个运行时间为O(n+m)的算法来 nd这样一个顶点。你不必 证明你的算法是正确的,但你必须给出一个类似v的顶点存在的证明Algorithm 无向图算法,algorithm,graph,nodes,Algorithm,Graph,Nodes,假设我们有一个n-节点,m-边无向图G=(V;E),我们有两个不同的节点 叫做s和t。假设s和t之间的距离严格大于n/2 . 显示在那里 是一个与s和t不同的节点v,因此从s到t的每条路径都经过v。 给出一个运行时间为O(n+m)的算法来 nd这样一个顶点。你不必 证明你的算法是正确的,但你必须给出一个类似v的顶点存在的证明 我想不出这个问题的确切答案,帮我解决 假设s和t之间有两条路径不共享一个节点。由于s和t之间的距离大于n/2,因此s和t之间的每条路径都大于等于n/2个节点。这意味着图形
我想不出这个问题的确切答案,帮我解决 假设s和t之间有两条路径不共享一个节点。由于s和t之间的距离大于n/2,因此s和t之间的每条路径都大于等于n/2个节点。这意味着图形有>=n+2个节点,这是一个矛盾 对于算法,只需找到任何路径,然后查看连接到一侧而不使用路径节点的子图的完成位置即可。详情如下:
- 如果s只连接到我们要查找的节点之外的一个节点
- 如果不是,则从s生成BFS
- 查找路径s-t
- 查找连接到s的节点,而不使用路径s-t节点的边
- 路径s-t上连接部分中的最后一个节点是我们要查找的节点