Bellman Ford演算法 模板

2021-08-19 23:36:37 字數 1218 閱讀 5969

如題,給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。

輸入格式:

第一行包含三個整數n、m、s,分別表示點的個數、有向邊的個數、出發點的編號。

接下來m行每行包含三個整數fi、gi、wi,分別表示第i條有向邊的出發點、目標點和長度。

輸出格式:

一行,包含n個用空格分隔的整數,其中第i個整數表示從點s出發到點i的最短路徑長度(若s=i則最短路徑長度為0,若從點s無法到達點i,則最短路徑長度為2147483647)

輸入樣例#1:複製

4 6 1

1 2 2

2 3 2

2 4 1

1 3 5

3 4 3

1 4 4

輸出樣例#1:複製

0 2 4 3
時空限制:1000ms,128m

資料規模:

對於20%的資料:n<=5,m<=15

對於40%的資料:n<=100,m<=10000

對於70%的資料:n<=1000,m<=100000

對於100%的資料:n<=10000,m<=500000

樣例說明:

1到3和1到4的文字位置調換

**:

#include #include #include #include #include #include #include #include #define inf 2147483647

#define ll long long

using namespace std;

const int maxn=500005;

ll dis[10005];

int u[maxn],v[maxn],w[maxn];

int main()

dis[s]=0;

for(int i=1;i<=m;i++)

for(k=1;k<=n-1;k++)

}if(!flag) break;

}for(int i=1;i

printf("%d\n",dis[n]);

return 0;

}

Bellman Ford演算法模板題

poj 3259 蟲洞 bellman ford判斷有無負環的問題 描述 在探索他的許多農場時,farmer john發現了許多令人驚嘆的蟲洞。蟲洞是非常奇特的,因為它是一條單向路徑,在您進入蟲洞之前的某個時間將您帶到目的地!每個fj的農場包括 1 500 字段方便地編號為1 中號 1 中號 250...

Bellman Ford演算法,SPFA演算法

bellman ford 演算法能在更普遍的情況下 存在負權邊 解決單源點最短路徑問題。對於給定的帶權 有向或無向 圖g v,e 其源點為 s,加權函式w是 邊集e 的對映。對圖g執行 bellman ford 演算法的結果是乙個布林值,表明圖中是否存在著乙個從源點s 可達的負權迴路。若不存在這樣的...

Bellman ford 演算法詳解

昨天說的dijkstra固然很好用,但是卻解決不了負權邊,想要解決這個問題,就要用到bellman ford.我個人認為bellman ford比dijkstra要好理解一些,還是先上資料 有向圖 5 712 8135 23 6 5 4 324 735 2 45 3 在講述開,先設幾個陣列 orig...