Bellman-Ford 算法
生活随笔
收集整理的這篇文章主要介紹了
Bellman-Ford 算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
根據之前最短路徑算法里提到的,我們只要放松所有邊直到其全部失效就可以得到最短路徑
注意:圖中不能有負圈。否則當負圈中某個點經過這個負圈的所有邊的松弛操作后,這個點的的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
總結
以上是生活随笔為你收集整理的Bellman-Ford 算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7.Mahout菩萨
- 下一篇: FCC有意支持Sprint与T-Mobi