Dijksitra算法求最短路仅仅适用于不存在右边是负权的情况(Bellman-Ford算法没有这一个限制)。主要特点是从起点为中心向外层层扩展,直到扩展到终点为止。最短路的最优子结构性质即一个最短路路径中经过的所有点这条路均是其最短路。(反证法易证)Dijkstra基本思路: 
①找到最短距离已经确定的顶点,从它出发更新相邻顶点的最短距离 
②此后不需要再关心1中的”最短距离已经确定的顶点”在最开...
                            
                            
                                分类:
编程语言   时间:
2015-03-05 23:46:57   
                                阅读次数:
200
                             
                    
                        
                            
                            
                                1 # include 2 3 # define MAX_VERTEXES 20//最大顶点数 4 # define INFINITY 65535;//代表∞ 5 6 typedef struct...
                            
                            
                                分类:
编程语言   时间:
2015-03-04 22:35:54   
                                阅读次数:
204
                             
                    
                        
                            
                            
                                反正觉得比书上的代码简单多了
主要的一些核心代码还是参考上一篇博客的,觉得那篇的Dij写的不错,值得细细品味
注释的话看上篇博客,vim不知道怎么注释
#include
using namespace std ;
const int maxint = 999 ;
const int maxnum = 100 ;
int dist[maxnum] ;
int pre[maxnum] ;...
                            
                            
                                分类:
编程语言   时间:
2015-03-04 21:07:41   
                                阅读次数:
188
                             
                    
                        
                            
                            
                                Dijkstra算法是按照路径长度递增的方法计算某一点到其余各顶点的最短路径。其算法的基本思想是:把图中所有顶点分成两组,第一组包括已确定最短路径的顶点(初始只包括源点v0),第二组包括尚未确定最短路径的顶点,...
                            
                            
                                分类:
编程语言   时间:
2015-03-04 17:11:21   
                                阅读次数:
248
                             
                    
                        
                            
                            
                                题目大意:给出一个单向带权图和一个点s,求点u,u到s的最短路径和s到u的最短路径之和最大。
先求一次dijkstra,然后把所有的边反向,权值不变,再求一次dijkstra,将两者加起来求最大的值就是所求的答案。
#include
#include
#include
#include
using namespace std;
const int maxn=1010;
cons...
                            
                            
                                分类:
编程语言   时间:
2015-03-02 09:36:09   
                                阅读次数:
206
                             
                    
                        
                            
                            
                                题目大意:给出一张有向图,求点1到点N的最短路,不同的是,对于每一条边,除了源点目标点和花费以外,还有额外点c,若走这条边之前到达过c点,花费会减少到另一个值P。如果最短路不存在,输出impossible。
先用floyd-warshall算法判断连通性,此时忽略额外的c和P。
然后用dijkstra算法,用d[i][S]表示在点i且经过了S集合的点的最短路,将每一个d[i][S]都看...
                            
                            
                                分类:
编程语言   时间:
2015-03-02 09:33:06   
                                阅读次数:
178
                             
                    
                        
                            
                            
                                Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论...
                            
                            
                                分类:
编程语言   时间:
2015-02-26 18:21:23   
                                阅读次数:
229
                             
                    
                        
                            
                            
                                【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 自10月初编写算法系列的博客以来,陆陆续续以来写了几十篇。按照计划,还有三个部分的内容没有介绍,主要是(Dijkstra算法、二叉平衡树、红黑树)。这部分会在后面的博客补充完整。这里主要是做一个总...
                            
                            
                                分类:
编程语言   时间:
2015-02-26 14:39:46   
                                阅读次数:
213
                             
                    
                        
                            
                            
                                prim算法描述:prim算法的思想和代码都跟dijkstra算法非常相似。在dijkstra算法中,我们用每次取出未标记集合中到源点最近的点进行标记并更新其邻接点到源点的距离:当d[x]+w 2 #include 3 #include 4 5 using namespace std; 6 ...
                            
                            
                                分类:
编程语言   时间:
2015-02-22 21:53:54   
                                阅读次数:
152
                             
                    
                        
                            
                            
                                题目链接:http://hihocoder.com/problemset/problem/1089算法描述:floyd算法是求解图中任意两点最短路的经典算法,复杂度为O(n^3)。虽然我们完全可以用n次dijkstra算法来求任意两点的最短路,复杂度也是O(N^3),但如果有一个算法只需要5行代码就...
                            
                            
                                分类:
编程语言   时间:
2015-02-22 19:34:03   
                                阅读次数:
260