摘要: 一、算法步骤 建立一个队列,初始时队列里只有起始点,再建立一个数组记录起始点到所有点的最短路径(该数组的初始值要赋为极大值,该点到它本身的路径赋为0,下面的模板中该数组为dist[])。然后执行松弛操作,用队列里有的点作为起始点去刷新到所有点的最短路,如果刷新成功且被刷新点不在队列中则把该点加入到队 阅读全文
posted @ 2017-12-04 22:51 ColdCode 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.51cto.com/ahalei/1387799 上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”。本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”。例如求下图中的1号顶点到2、3 阅读全文
posted @ 2017-12-04 22:40 ColdCode 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.51cto.com/ahalei/1383613 暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。 上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请 阅读全文
posted @ 2017-12-04 22:34 ColdCode 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://poj.org/problem?id=3268 题意 有向图中有n个结点,编号1~n,输入终点编号x,求其他结点到x结点来回最短路长度的最大值。 思路 最短路问题,有1000个结点,Floyd算法应该会超时,我刚开始使用的Dijkstra算法也超时,原因是因为我使用一个循环遍 阅读全文
posted @ 2017-12-04 22:19 ColdCode 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://poj.org/problem?id=1847 题意 有n个车站,编号1~n,每个车站有k个出口,车站的出口默认是k个出口中的第一个,如果不想从默认出口出站,则需要手动选择出站口。现在从车站a出发,求最少需要手动选择几次出站口才能到车站b。 思路 这题的图中没有显式给出结点之 阅读全文
posted @ 2017-12-04 20:24 ColdCode 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://poj.org/problem?id=2387 题意 有n个路标,编号1~n,输入路标编号及路标之间相隔的距离,求从路标n到路标1的最短路径(由于是无向图,所以也就是求从路标1到路标n的最短路径)。 思路 最短路径问题,由于结点数目最多可以有1000个,用Floyd算法应该会 阅读全文
posted @ 2017-12-04 16:30 ColdCode 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2544 思路 最短路算法模板题,求解使用的Dijkstra算法、Floyd算法、SPFA算法可以当做求解最短路问题的模板使用。 代码 Dijkstra算法: Floyd算法: SPAF算法: 阅读全文
posted @ 2017-12-04 15:59 ColdCode 阅读(172) 评论(0) 推荐(0) 编辑
AmazingCounters.com