如题,是否存在两点之间必经某一给定点的最短路径的多项式时间内的解?如果存在请描述一下解法。
正常: 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的最短路径
不就是你想要的了?