一个非常冷门的知识点(大概吧)
基础定义
定义:一个 n n n 个点, m m m 条边的无向图,最短路树是图上的一棵生成树,以一个节点 x x x 为根,满足对于任意 i ( 1 ≤ i ≤ n , i ≠ x ) i(1\le i\le n,i\neq x) i(1≤i≤n,i=x),树上两点最短路的距离等于原图两点最短路距离。
性质:第一个即是其定义,第二个是我这个民科自己想的,不一定对:对于两个节点 u , v u,v u,v 满足同属于最短路树上的一条链,那么二者原图上的最短路就是树上两点到根节点距离之差。(证明:考虑反证,若两点有更短的距离,那么肯定会用这个距离去更新深度更深的节点)。
如何求出:考虑 dijkstra 的过程,当使用一个节点 u u u 更新另一个节点 v v v 时, ( u , v ) (u,v) (