码迷,mamicode.com
首页 > 编程语言 > 详细

计算多源最短路径 ----- floyd算法

时间:2018-01-26 22:45:30      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:最小值   --   路径   font   body   过程   span   tle   .net   

题目链接:https://vjudge.net/contest/146629#problem/L

题目描述:有n个星球,起点在第一个星球,求走遍全部星球的 到达时间和 最小值

解题过程:

记其中第 个星球到达第 个星球所需时间为 t[i][j]

进行floyd算法处理可得到第 个星球到达第 个星球所需的最小时间:

    for (k = 1; k <= n; k++)
        for (i = 1; i <= n; i++)
            for (j = 1; j <= n; j++)
                t[i][j] = min(t[i][k] + t[k][j], t[i][j]);

 

 

接着用dfs对各个星球进行搜索即可

剪枝:

①当前时间 + 从该星球到所有未到达星球所需时间 < 所有未到达星球的时间限制

②(重要)当前到达时间和 + (n - 到达星球数) 当前到达时间 < 已知最小结果

 

 

Floyd算法为什么把k放在最外层? ------ 知乎 https://www.zhihu.com/question/30955032

 

计算多源最短路径 ----- floyd算法

标签:最小值   --   路径   font   body   过程   span   tle   .net   

原文地址:https://www.cnblogs.com/kang000/p/8361558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!