給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。
第一行包含三個整數n、m、s,分別表示點的個數、有向邊的個數、出發點的編號。
接下來m行每行包含三個整數fi、gi、wi,分別表示第i條有向邊的出發點、目標點和長度。
一行,包含n個用空格分隔的整數,其中第i個整數表示從點s出發到點i的最短路徑長度(若s=i則最短路徑長度為0,若從點s無法到達點i,則最短路徑長度為2147483647)
4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
0 2 4 3
#include
#include
#include
using
namespace std;
struct emm
f[500001];
bool pd[
10001];
int n,m,ll,lr,le,s,t,l,r=
1,u,o;
int ls[
10001
],dl[
40001
],dis[
10001];
intmain()
memset
(dis,
0x7f
,sizeof
(dis));
dis[s]=0
,dl[1]
=s,pd[s]
=true
;while
(l//spfa法
} pd[u]
=false;}
for(
int i=
1;i<=n;
++i)
if(dis[i]
!=dis[0]
)printf
("%d "
,dis[i]);
else
printf
("2147483647 ");
return0;
}
單源最短路徑 SPFA演算法
求單源最短路徑的spfa演算法在bellman ford演算法的基礎上進行了改進,使其在能夠計算帶負權圖的單源最短路徑的基礎上,時間複雜度大幅度降低。時間複雜度 o k e k 2 基本演算法 設立乙個先進先出的佇列來儲存待優化的節點,優化時每次取出隊首節點u,並且用u點當前的最短路徑估計值對離開u...
Spfa單源最短路徑演算法
spfa 全稱shortest path faster algorithm,是求單源最短路徑的一種演算法.跟dijkstra類似,但是有一些不一樣。由於本人弱,不知道 有區別,請各位大神補充 我們來建乙個圖。首先,我們用e陣列表示各邊的關係,如下是初始狀態。我們開乙個dis陣列來儲存1號點到各點的最...
SSL ZYC 模板 單源最短路徑 SPFA
題目大意 求出乙個點到其他所有點的最短路徑。in put inp ut4 6 1 1 2 2 2 3 2 2 4 1 1 3 5 3 4 3 1 4 4 ou tput o utput 0 2 4 3思路 思路一 dijkstra 當時還沒有學spfa,看了資料感覺dijkstra可以卡過,於是打了...