
最短路径~dijkstra算法
文章平均质量分 76
暮光乐鱼
这个作者很懒,什么都没留下…
展开
-
hdu 5137 How Many Maos Does the Guanxi Worth(dijkstra算法+删边)
题目链接 题目大意: 给出n个点,m条边,除了点1和点n,可以任意删去一个点,求从1到n的最短路中最长的距离。 题目分析: 首先需要写出一个dijkstara算法求最短路,然后需要进行删点操作,删去一个点,即将与该点相连的所有路均设为无穷大即可,依次枚举删去各个点的最短路,取最大值即为所求值。 AC代码:#include<stdio.h> #include<st原创 2015-08-24 10:33:43 · 809 阅读 · 0 评论 -
hdu 2544 最短路
本题链接:点击打开链接 本题大意: 输入n和m,表示有n个点,有m行输入,每行输入两个点和一个距离作为权值,标号1为起点,n为终点。 解题思路: 此题实际是求两点间最短路径问题,求最短路径的一个算法dijkstra算法(迪科斯彻算法)。 具体请参考代码: #include #include #include #define INF原创 2015-08-17 20:13:37 · 532 阅读 · 0 评论 -
hdu 1874 畅通工程续(迪科斯彻算法)
本题链接:点击打开链接 本题大意: n个村庄,m组数据,村庄标号为0-n,每组数据输入两个点及距离作为权值,然后输入起点和终点,求最短距离。 解题思路: 基本的dijkstra算法使用。具体请参见代码: #include #include #define INF 0x3f3f3f3f int map[1010][1010];//存放两点间距离 i原创 2015-08-17 20:30:42 · 551 阅读 · 0 评论 -
hdu 2680 Choose the best route
本题链接:点击打开链接 本题大意: 输入n,m,s,代表标号为1--n,有m组数据,终点为s。每组数据输入两个点及权值。然后输入w,代表有w个起点,然后输入各起点。求起点到终点的最短时间。 解题思路: 本题也是最短路径问题。有多个起点,本题也是与hdu 一个人的旅行 采取相同的方法。另外选取一个点,将各起点据此点的距离记为0,并以此点最为起点。 具体请参考原创 2015-08-17 21:24:31 · 576 阅读 · 0 评论 -
hdu 3790 最短路径问题
本题链接:点击打开链接 本题大意: 输入n,m。代表标号为1--n,有m组数据。每组数据输入两个点,及距离,还有消费。然后输入起点和终点。求最短距离及消费,若距离相等,则选消费最少的。 解题思路: 本题依然使用 dijkstra算法,只是在更新和判断的时候需加上消费。具体请参考代码: #include #include #define INF 0x3f原创 2015-08-17 21:36:42 · 395 阅读 · 0 评论 -
hdu 1869 六度分离
本题链接:点击打开链接 本题大意: 输入n和m,标号为0--(n-1),有m组数据,每组数据代表两人有关系,证明“六度分离”说法的正确性。 解题思路: 本题亦可看做求距离,不妨将认识的两人之间的权值记为1,则就变成了看是否有人之间的距离大于7(即最多相隔六个人)。求每人之间的距离使用dijkstra算法。 参考代码: #include #includ原创 2015-08-17 20:48:42 · 550 阅读 · 0 评论 -
hdu 2066 一个人的旅行
本题链接:点击打开链接 本题大意: 输入T.S.D,代表有T组数据,有S个起点,D个终点,每组数据输入两个点及权值。求从任意起点到任意终点中,求消耗时间最短的旅行时间。 解题思路: 此题也是求最短路径问题,关键是此题有多个起点,多个终点。一个较好的求法是另外添加一个点(保证此点与所给点无冲突即可),将此点到各起点的距离均记作0,则就简化成了一个起点,多个终点原创 2015-08-17 21:09:24 · 569 阅读 · 0 评论 -
迪科斯彻算法总结
最短路之~迪科斯彻算法 迪科斯彻算法是由荷兰计算机科学家艾滋郝尔·戴克斯拉提出的。本算法使用广度优先搜索解决非负权有向图的单源最短路径问题,算法最终得到一个最短路径树。此算法常用于路由算法或者作为其他图算法一个子模块,本算法是用来找一个点到其他所有点之间的最短路径。 此算法中变量的使用: map[][]二维数组记录两点之间的权值原创 2015-08-18 09:45:54 · 1365 阅读 · 0 评论