首页 > 其他 > 详细

Johnson 全源最短路

时间:2020-10-09 11:46:33      阅读:46      评论:0      收藏:0      [点我收藏+]

Johnson 全源最短路

特点

  • 可求图上任意两点间的最短路,比Floyd快
  • 支持负权图,且可判断负环

核心流程

  1. 创建超级源点0,并以0为起点向图中各结点建边,边权均为0.
  2. 以0为起点进行SPFA,求出节点0到各节点\(i\)的最短路,记为\(h[i]\)。由于SPFA的自身特点,这一步可以同时判断负环。
  3. 更新图上原来所有边的边权\(w_i\)w[i]+=h[u]-h[v],其中\(u,v\)是边\(i\)的起点和终点。
  4. 枚举图上所有点为起点进行Dijskra,求出图上任意两点\(u,v\)间的最短路\(d[u][v]\)
  5. 更新\(d[u][v]\),即减去之前加上的边权,d[u][v]-=h[u]-h[v]
  6. 最后所得的\(d[u][v]\)即最终答案。

Johnson 全源最短路

原文:https://www.cnblogs.com/streamazure/p/13784101.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!