经过某一点的dijkstra

如题,是否存在两点之间必经某一给定点的最短路径的多项式时间内的解?如果存在请描述一下解法。

阅读 3.8k
2 个回答

正常: A -> B : return dijkstra(A, B)

你的: A -> C -> B: return dijkstra(A, C) + dijkstra(C, B)

是不是你要的答案?

要想没有环路的话

A -> C 的路径标记一下或者删掉
再跑 C -> B

然后,相反的顺序再来一次

两者取最优

比如 A B C三个点,要求A->C经过B的最短路径, 求出A->B的最短路径再求出B->C的最短路径
不就是你想要的了?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题