美文网首页
Floyd-Warshshall(未简化&数组版)

Floyd-Warshshall(未简化&数组版)

作者: laochonger | 来源:发表于2018-03-09 09:34 被阅读0次

解决多元最短路径问题(每两点之间的最短路):
一次最外层循环表示借助一条边

初始化:d[i][i] = 0; 其他为INF

for(int k = 1; k <= n; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(d[i][j] < INF&&d[k][j] < INF)
d[i][j] = min(d[i][j], d[i][k]+d[k][j]);

//有向图无权图中,可以用1和0表示两点之间是否有通路
//预处理些许调整,初始化d为0
//主算法中只需把最后一句改为
// d[i][j] = d[i][j]||(d[i][k]&&d[k][j]);
//这样的结果称为有向图的传递闭包

相关文章

网友评论

      本文标题:Floyd-Warshshall(未简化&数组版)

      本文链接:https://www.haomeiwen.com/subject/vwadfftx.html