http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html上面的链接讲解的比较详细,下面是我自己的理解Dijkstra算法1.定义Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短...
分类:
编程语言 时间:
2014-12-17 22:34:55
阅读次数:
273
Dijkstra算法Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Floyd算法Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径...
分类:
编程语言 时间:
2014-12-15 06:29:34
阅读次数:
543
一.算法介绍
Floyd算法是一种在有向图中求最短路径的算法。相比不能再有向图中包含负权值的dijkstra算法,Floyd算法可以用在拥有负权值的有向图中求解最短路径(不过不能包含负权回路)。它是一种求解有向图中点与点之间最短路径的算法。
我们检查有向图中的每一个节点X,对于图中过的2点A和B,如果有Dis(AX)+Dis(XB)
所以,核心代码很简单,其中N是顶点个数,时间复杂度为O(N...
分类:
编程语言 时间:
2014-12-14 09:28:18
阅读次数:
305
最短路径·二:Floyd算法
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
万圣节的中午,小Hi和小Ho在吃过中饭之后,来到了一个新的鬼屋!
鬼屋中一共有N个地点,分别编号为1..N,这N个地点之间互相有一些道路连通,两个地点之间可能有多条道路连通,但是并不存在一条两端都是同一个地点的道路。
由于没有肚子的压...
分类:
编程语言 时间:
2014-12-13 21:53:03
阅读次数:
380
N代表顶点个数,M代表边的条数.
Floyd算法虽然总体时间复杂度,但是可以解决负权边(不能解决负权环,实际上这几种都无法解决负权回路,因为一直循环下去总能找到更小的路径),并且均摊到每一点对上,在所有的算法中还是比较好的. Floyd算法代码复杂度小也是一大优势. Dijkstra算法最大的弊端就是无法适应有负权边的图,但Dijkstra具有很好的可扩展性,另外在Dijkstra算法在选择剩余...
分类:
编程语言 时间:
2014-12-06 12:51:40
阅读次数:
159
虽然不是最短路,但是询问时任意两点之间的信息都要知道才能回答,由此联想到floyd算法,只要都floyd算法的原理理解清楚了就会发现:这道题的思想和求任意两点之间的最短路的一样的,只不过是更新的信息不同而已。这道题还有一个难点在于状态压缩:如果直接用字符串来表示maps[i][j],那么在floyd...
分类:
编程语言 时间:
2014-11-17 06:48:43
阅读次数:
174
一:说明
(1)使用floyd实现各个站点的计算记录和路径
(2)站点获取和初始距离根据外部文件得到
(3)结果以外部文件的形式存储
(4)站点间转乘,认为初始值也为1
(5)代码注释比较详细,如有疑问或者代码有,请联系我,谢谢
(6)java中二维数据的定义:
a: float[][] numthree; //定义一个float类型的2维数组
...
分类:
编程语言 时间:
2014-11-13 12:58:05
阅读次数:
209
题目大概意思:输入n,m,n代表n个点,接着输入n个点之间的距离(n*n的矩阵),接下来m次询问,输入a,b,c如果a,b之间的最短路径中存在c点则输出Yes,否则输出No
比赛的时候没有做出来,赛后帆哥一点播就知道了。。。。我写的时候直接用floy算法求距离并记录路径。。然后TLE到死。。。我就奇怪了数据n,m都小于100,怎么会TLE啊。。。坑爹啊。。。我一直怀疑是不是用别的算法。。。。。帆...
分类:
编程语言 时间:
2014-11-09 22:22:59
阅读次数:
224
题意:给你n种货币,再给你m种保证每个货币能换成其他的货币,其中 两个货币之中给你它们的汇率。要你求出能不能找到一种兑换的方式,使得最后兑换为起始的货币,使得自己赚钱了
思路:这个题目也是一个建图的模型。可以假设出,从某点出发,回到原点,自己的价值还增大了,所以只需要汇率的乘积到起始点的时候大于1就可以了。所以,明显的Floyd算法。
AC代码:
#include
#include...
分类:
其他好文 时间:
2014-11-06 21:55:50
阅读次数:
227
Arbitrage
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 16127
Accepted: 6780
Description
Arbitrage is the use of discrepancies in currency exchange rates t...
分类:
编程语言 时间:
2014-10-24 09:18:36
阅读次数:
225