單源最短路問題
Bellman-ford演算法
用edge儲存每條路徑,d【N】陣列表示到源點的最短路長度,將源點的d設定為0,其他的d都設為inf,這樣n次操作中每次就只有和源點有關係的d會更新,值得一提的是,這個演算法很容易記錄路徑
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n,m;
int cnt;
int pre[10005],d[10005];
struct edge{
int u,v,c;
}e[10005];
void bell(){
for(int k=1; k<=n; ++k)
for(int i=0; i<cnt; ++i)
{
int x=e[i].u,y=e[i].v;
if(d[x]>d[y]+e[i].c)
{
d[x]=d[y]+e[i].c;
pre[x]=y;//記錄路徑
}
}
}
int main()
{
cnt=0;
cin>>n>>m;
while(m--){
int a,b,cost;
cin>>a>>b>>cost;
e[cnt].u=a;
e[cnt].v=b;
e[cnt++].c=cost;
e[cnt].u=b;
e[cnt].v=a;
e[cnt++].c=cost;
}
bell();
return 0;
}
相關文章
- bellman-ford 單源最短路問題 圖解圖解
- 單源最短路徑
- week2 kuangbin 題單 最短路問題 + 並查集問題並查集
- Bellmanford與Spfa解決存在負邊權的單源匯最短路問題
- 最短路徑問題
- 單源最短路徑:最短路徑性質的證明
- 單/全最短路專題 兩題
- 最短路:求最長最短路
- 最短路 || 最長路 || 次短路
- 單源最短路徑-Dijkstra演算法演算法
- 0016:單源最短路徑(dijkstra演算法)演算法
- 單源最短路徑(single-source shortest path )
- HDU - 3790 (雙標準限制最短路徑)最短路徑問題
- P1354 房間最短路問題
- 最短路徑問題 (dijkstra演算法)演算法
- 九度oj-最短路徑問題
- P4779 【模板】單源最短路徑(標準版)
- Johnson全源最短路
- Johnson 全源最短路
- [筆記](更新中)最短路問題的變形筆記
- 圖論最短路徑問題與matlab實現圖論Matlab
- 圖的最短路徑問題 詳細分解版
- 使用A*演算法解迷宮最短路徑問題演算法
- python實現Dijkstra演算法之 最短路徑問題Python演算法
- conda配置源問題
- BFS求無權圖的單源最短路徑-鄰接矩陣儲存矩陣
- 資源路徑問題
- 最短路徑問題,BFS,408方向,思路與實現分析
- 所有結點對的最短路徑問題(All-Paris Shortest Paths)
- dijkstra最短路演算法模板(雙源)演算法
- 最長有效括號的問題
- 梯度下降法實現最簡單線性迴歸問題python實現梯度Python
- 2020複習專題——最短路
- Day1 最短路專題
- 解決docker換源問題Docker
- [最短路徑問題]Dijkstra演算法(含還原具體路徑)演算法
- 精準測試最為簡單的問題之一:資料與邏輯
- 最失敗的 JavaScript 面試問題JavaScript面試