在带权有向图G中,求G中的任意一对顶点间的最短路径问题,也是十分常见的一种问题。
解决这个问题的一个方法是执行n次迪杰斯特拉算法,这样就可以求出每一对顶点间的最短路径,执行的时间复杂度为O(n3)。
而另一种算法是由弗洛伊德提出的,时间复杂度同样是O(n3),但算法的形式简单很多。
可以将弗洛伊德算法描述如下:
在本题中,读入一个有向图的带权邻接矩阵(即数组表示),建立有向图并按照以上描述中的算法求出每一对顶点间的最短路径长度。
Time Limit | $1$ 秒/Second(s) | Memory Limit | $512$ 兆字节/Megabyte(s) |
提交总数 | $823$ | 正确数量 | $640$ | "
裁判形式 | 标准裁判/Standard Judge | 我的状态 | 尚未尝试 |
难度 | 分类标签 | 图论 |
4
0 3 0 1
0 0 4 0
2 0 0 0
0 0 1 0
0 3 2 1
6 0 4 7
2 5 0 3
3 6 1 0
另外需要注意的是,为了更方便的表示顶点间的不可达状态,可以使用一个十分大的值作为标记。而在题目描述中的算法示例使用了另外一个三维数组对其进行表示,这使原本的O(n3)时间复杂度增长到了O(n4),这也是需要自行修改的部分。
如果两点x,.y不可达,请输出 e[x][y] =-1
本题记录 | 用 户(点击查看用户) | 运行号(点击购买题解) | 时 间 |
---|---|---|---|
算法最快[$0 $ms] | kkl | 865954 | 2022-06-14 19:35:50 |
内存最少[$1120 $KB] | 骆源 | 961046 | 2023-04-30 23:20:09 |
第一AC | 范晋豪@信息与计算科学142 | 152739 | 2017-11-16 15:10:16 |
第一挑战 | 范晋豪@信息与计算科学142 | 152739 | 2017-11-16 15:10:16 |
竞赛编号 | 竞赛名称 | 竞赛时间 | 访问比赛 |
---|---|---|---|
1803 | 2023-2024-2学期<计算机专业竞赛实训> 第7-8周练习:图论算法【22计算机】 | 2024-04-08 00:00:00 | 请登录 |
1771 | 2023-2024-1学期<编译原理> 第15-17周练习:图算法、中间代码生成优化实验【21计算机1234】 | 2023-12-11 09:00:00 | 请登录 |
1743 | 2022-2023-2学期<计算机专业竞赛实训> 第9-10周练习:图论算法【21计算机12345】 | 2023-04-17 00:00:00 | 请登录 |
1689 | 2021-2022-2学期<算法分析与设计> 第9-10周练习:图论算法 | 2022-04-18 08:00:00 | 请登录 |
1615 | 2020-2021-2学期<算法分析与设计> 第14-15周练习:图论算法 | 2021-05-17 00:00:00 | 请登录 |