我有这个问题 给定具有正边缘权重和地标顶点x的有向图G,您的目标是找到从一个顶点v到穿过地标x的另一个顶点w的最短路径的长度。
需要描述问题的O(E log V)算法。 我知道Dijkstra算法的复杂性是O(ElogV)。
请帮助我解决这个问题。
答案 0 :(得分:1)
如果您首先找到从v到x,p_1以及从x到w的最短路径,使用Dijkstra算法的p_2并将这些路径连接起来,那么这将是从v到w到x的最短路径。
如果路径较短,p',那么在x处分割此路径将产生从v到x,p_1'的路径以及从x到w的路径,p_2',其中p_1'比p_1短,或p_2'比p_2短(否则长度(p_1'+ p_2')>长度(p_1 + p_2))这是矛盾的。
编辑:这显然是O(E logV),因为它只是使用了Dijkstra两次。