博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bellman-Ford 算法
阅读量:5993 次
发布时间:2019-06-20

本文共 657 字,大约阅读时间需要 2 分钟。

根据之前最短路径算法里提到的,我们只要放松所有边直到其全部失效就可以得到最短路径

注意:图中不能有负圈。否则当负圈中某个点经过这个负圈的所有边的松弛操作后,这个点的的d[i]就会减小,此时会发现它可以通过这个负圈的松弛操作不断使它自身不断变小。对于存在负圈的图,最短路无意义 

 由于是有关边的算法,并且我们不需要关注边之间的关系,只需要放松所有边即可

模板入下:

struct edge {
int from, to, cost};edge es[MAX_E]; //边 int d[MAX_V];int V, E;for (int i = 1; i <= V; i++) d[i] = INF;d[s] = 0;while (true) { bool update = false; for (int i = 1; i <= E; i++) { edge e = es[i]; //d[e.from]=INF时距离为无穷大,没有意义 if (d[e.from]!=INF && d[e.to]>d[e.from]+e.cost]) { d[e.to] = d[e.from] + cost; update = true; } } if (!update) break;}

 

转载于:https://www.cnblogs.com/wizarderror/p/10902607.html

你可能感兴趣的文章
数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()...
查看>>
判断js对象是否拥有某属性
查看>>
web基础,用html元素制作web页面
查看>>
Minimum Height Trees
查看>>
BZOJ 2434 阿狸的打字机
查看>>
android百度地图开发之自动定位所在位置与固定位置进行驾车,步行,公交路线搜索...
查看>>
[leetcode] Subsets
查看>>
Mysql中where条件一个单引号引发的性能损耗
查看>>
P3605 [USACO17JAN]Promotion Counting晋升者计数
查看>>
VC中BSTR和CString的使用
查看>>
十 Appium环境搭建(Windows版)
查看>>
简单的在jsp页面操作mysql
查看>>
string 类的实现
查看>>
数据库的几种联结,union,union all ,inner jion ,left jion,right jion ,cross jion
查看>>
python 字符串、列表和元祖之间的切换
查看>>
C++学习之路(六):实现一个String类
查看>>
JQuery iframe 刷新效果
查看>>
jedis ShardedJedisPool的 HASH一致性算法(一)从String 的hashcode说起
查看>>
About Instruments
查看>>
那些开源程序中让人叹为观止的代码 - 3 保持元素纵横比
查看>>