Bellman_Ford算法
Bellman_Ford算法也是求单源最短路径的算法,但是它能算带负权边的图的最短路径(对于带负圈的图就无能为力),且可以判断当前图是否带有负圈。它的时间复杂度是O(n*m),其中n为点数,m为边数。
Bellman_Ford算法为什么能求得单源最短路径呢?因为它一共松弛n-1轮,每轮遍历了所有的边,所以它每轮至少要生成一个点的...
分类:
编程语言 时间:
2015-04-04 22:37:27
阅读次数:
201
本题地址:(http://acm.hdu.edu.cn/showproblem.php?pid=2544)
本题使用的是Dijkstra算法,这种算法的时间复杂度为O(V*V),使用这种前提—>是图没有负权值边,不然这种算法就无法解决问题,还得使用Bellman-Ford算法(使用这种算法的前提是图中不存在负圈:从源点可达的总权值为负的回路)AC代码如下:#include
#inc...
分类:
其他好文 时间:
2015-03-21 14:06:28
阅读次数:
123
Floyed:复杂度:O(n^3)用途:求一条路走完所有的地方的的最小值,很简单,就三个for,一般写floyed不谢bellman_ford~~~适用条件:遍历所有的点,适合于稠密图,floyed与bellman_ford算法之间的区别就是floyed计算了从每一点开始的值,最后只要选取就行,方便...
分类:
编程语言 时间:
2015-03-20 20:19:42
阅读次数:
190
Dijkstra算法其实Dijkstra是单源点最短路径的基础算法,这个算法的目的就是找到一个图中的某个点V到这个图中其他点的最短路径。条件
有向图
没有负权值路径
时间复杂度:O(E) + O(V^2) = O(V^2)
当图是稠密的时候和稀疏的时候时间复杂度还是有点差别的。
代码实现其实这个还挺简单的,单源点最短路径还有一个Bellman-Ford算法,以后在写,比较简单。D...
分类:
编程语言 时间:
2015-03-11 12:59:07
阅读次数:
235
RIP(RoutingInformationProtocol)路由信息协议基于距离矢量(Distance-Vector)的贝尔曼-福特(Bellman-Ford)算法使用跳数作为度量RIPv1是有类别路由协议(不携带子网掩码),RIPv2是无类别路由协议(携带子网掩码)RIPv1使用广播发送报文;RIPv2有2种发送方式:组播方式(缺..
分类:
其他好文 时间:
2015-03-10 17:34:09
阅读次数:
191
Dijksitra算法求最短路仅仅适用于不存在右边是负权的情况(Bellman-Ford算法没有这一个限制)。主要特点是从起点为中心向外层层扩展,直到扩展到终点为止。最短路的最优子结构性质即一个最短路路径中经过的所有点这条路均是其最短路。(反证法易证)Dijkstra基本思路:
①找到最短距离已经确定的顶点,从它出发更新相邻顶点的最短距离
②此后不需要再关心1中的”最短距离已经确定的顶点”在最开...
分类:
编程语言 时间:
2015-03-05 23:46:57
阅读次数:
200
单源最短路问题是固定一个起点s,求它到所有点的最短路的问题。Bellman-Ford算法可以用于边权为负的情况而不像Dijkstra只适用于边权为正的情况(有负圈返回错误),但是其效率比较低。记从起点s出发到顶点i的最短距离为的d[i] 那么
d[i] = min(d[j]+(j->i)|其中#include
#include
#include <algori...
分类:
编程语言 时间:
2015-03-04 22:44:49
阅读次数:
217
Problem Description
某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。
现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
Input
本题目包含多组数据,请处理到文件结束。
每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。
...
分类:
编程语言 时间:
2015-02-18 09:34:55
阅读次数:
201
F - Wormholes
Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d
& %I64u
SubmitStatus
Description
While exploring his many farms, Farmer John has discovered a number of...
分类:
其他好文 时间:
2015-02-11 14:43:04
阅读次数:
260
上一节我们写了Bellman-Ford算法解决负权边的问题:
邻接表存储图:
n个顶点,m条边。
数组实现邻接表。对每一条边进行1-m编号。用u,v,w三个数组来记录每条边的信息,即u[i],v[i],w[i]表示第i条边是从第 u[i]号顶点到v[i]号顶点且权值为w[i].
first数组的1-n号单元格分别用来存储1-n号顶点的第一条边的编号,初始的时候因...
分类:
其他好文 时间:
2015-02-03 23:09:03
阅读次数:
457