【发布时间】:2014-09-12 21:53:40
【问题描述】:
给定一个无向(无长度)图 G=(V,E),|V|=n 和 |E|= m,以及两个顶点 v,w,求输出最短 v-w 路径数的算法在G中。运行时间应该是O(m+n)
我一直在解决这个问题,但很难让运行时间为 O(m+n)
由于该图既是无向图又是未加权的,因此我尝试过这种方式。使用 BFS 确定最短 v-w-path 的长度。然后使用 DFS 找到 v-w-shortest 路径的数量,使得两个节点连接并且路径的长度等于 BFS 的输出。 但是这个计划的运行时间是O(m+n)+O(m+n)。
我还尝试修改 Dijkstra 算法。当有一个节点加入到访问节点集合中时,存储最短路径的长度和最短路径的数量。而且我一直在计算运行时间。
【问题讨论】:
-
你已经尝试了什么?
-
当你发帖时,请说明你已经尝试过什么,所以看起来你只是在询问你的练习的答案,甚至没有首先搜索它,我确信这不是案例;)
-
我假设边缘没有加权?
-
您在寻找最短路径吗?还是所有可能的路径?
-
对不起,这是我第一次使用这个网站。我会补充我的问题。