#include
#include
#include
typedef char VertexType[4];
typedef char InfoPtr;
typedef int VRType;
#define INFINITY 100000		//定义一个无限大的值
#define MaxSize 50	//最大顶点个数
typedef int PathMatrix[MaxSize][MaxSi...
                            
                            
                                分类:
编程语言   时间:
2015-08-12 06:44:01   
                                阅读次数:
188
                             
                    
                        
                            
                            
                                Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性...
                            
                            
                                分类:
编程语言   时间:
2015-08-07 13:35:09   
                                阅读次数:
213
                             
                    
                        
                            
                            
                                原题:  http://acm.hdu.edu.cn/showproblem.php?pid=1690题目大意: 
图中的表是代表不同长度路径的花费,输入所有点的坐标,求任意两点间的最短花费。因为是求任意两点,这里最好是用floyd算法。 
题中几大坑: 
数据可能会超int,要用long long int; 
坐标可以为负,求距离要用abs绝对值函数。参考代码如下:#include <iostre...
                            
                            
                                分类:
其他好文   时间:
2015-08-07 11:14:59   
                                阅读次数:
117
                             
                    
                        
                            
                            
                                今天继续加上最短路径的算法学习------floyd算法2.floyd算法,(罗伯特·弗洛伊德)-----各个顶点间的最短路径求的是在一个图中,各个顶点间的最短路径。算法描述1)算法思想各个顶点间的最短路径的情况,不外乎,两种情况。一是,点点相连,另一是,通过若干个中间点相连。因此,对于每个顶点来说...
                            
                            
                                分类:
编程语言   时间:
2015-08-04 22:21:18   
                                阅读次数:
121
                             
                    
                        
                            
                            
                                floyd算法和之前讲的bellman算法、dijkstra算法最大的不同在于它所处理的终于不再是单源问题了,floyd可以解决任何点到点之间的最短路径问题,个人觉得floyd是最简单最好用的一种算法,只不过它的时间复杂度高,为o(v^3),用的时候需要谨慎。floyd的精髓部分在于实现其思想的三个...
                            
                            
                                分类:
编程语言   时间:
2015-07-26 10:56:22   
                                阅读次数:
138
                             
                    
                        
                            
                            
                                44. 蛤蟆的数据结构笔记之四十四弗洛伊德Floyd算法
本篇名言:“希望是厄运的忠实的姐妹。 --普希金”
我们继续来看下数据结构图中的一个算法,这个算法来自图灵奖得主。
1.  Floyd算法介绍
Floyd算法又称为插点法,是一种用于寻找给定的加权图中多源点之间最短路径的算法。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。注意这个可不...
                            
                            
                                分类:
编程语言   时间:
2015-07-25 23:03:34   
                                阅读次数:
291
                             
                    
                        
                            
                            
                                六度分离Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5411Accepted Submission(s): 2195Problem Descri...
                            
                            
                                分类:
编程语言   时间:
2015-07-23 17:23:50   
                                阅读次数:
157
                             
                    
                        
                            
                            
                                题意:给定一个n节点m条边的无向图,定义c为每对顶点的最短路之和,要求删掉一条边重新求一个c值c',求出c'最大值.
思路:如果用floyd算法计算c,每尝试删除一条边都要重新计算一次,时间复杂度为O(n*n*n*m),很难承受。如果用n次Dijkstra计算单源最短路,时间复杂度味O(n*m*m*logn)。虽然看上去比之前的好,但由于佛洛依德算法的常数很小,实际运行时间差不多...
                            
                            
                                分类:
其他好文   时间:
2015-07-23 15:42:54   
                                阅读次数:
94
                             
                    
                        
                            
                            
                                题意:给出任意两头牛在比赛中的位次关系,求根据所给的数据,能确定几头牛的rank~
思路:求有向图的传递闭包问题~   简单说,传递性就是如果点i和点k连通,点k和点j连通,那么点i和点j也连通~
由此我们就可以判断出图中任意两点是否相连。 这道题可以用floyd算法求解,最后判断所有与某个点相连的点的个数是否等于n-1,就可以得出结果辣~
AC代码:
#include 
#include...
                            
                            
                                分类:
其他好文   时间:
2015-07-22 19:01:35   
                                阅读次数:
99
                             
                    
                        
                            
                            
                                Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论...
                            
                            
                                分类:
编程语言   时间:
2015-07-18 19:51:45   
                                阅读次数:
211