如題,給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。
輸入格式:
第一行包含三個整數n、m、s,分別表示點的個數、有向邊的個數、出發點的編號。
接下來m行每行包含三個整數fi、gi、wi,分別表示第i條有向邊的出發點、目標點和長度。
輸出格式:
一行,包含n個用空格分隔的整數,其中第i個整數表示從點s出發到點i的最短路徑長度(若s=i則最短路徑長度為0,若從點s無法到達點i,則最短路徑長度為2147483647)
輸入樣例#1:
4 6 11 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 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7const
int maxn=500001;8
struct
node
9edge[maxn];
15int num=1;16
inthead[maxn];
17void add(int x,int y,int
z)18
25int
dis[maxn];
26int
vis[maxn];
27int
n,m,s;
28void spfa(int
s)2950}
51}52}
53for(int i=1;i<=n;i++)
5457}58
intmain()
5969
spfa(s);
70return0;
71 }
P3371 模板 單源最短路徑
題目描述 如題,給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。輸入輸出格式 輸入格式 第一行包含三個整數n m s,分別表示點的個數 有向邊的個數 出發點的編號。接下來m行每行包含三個整數fi gi wi,分別表示第i條有向邊的出發點 目標點和長度。輸出格式 一行,包含n個用空格分隔的整...
P3371 模板 單源最短路徑
題目描述 如題,給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。輸入輸出格式 輸入格式 第一行包含三個整數n m s,分別表示點的個數 有向邊的個數 出發點的編號。接下來m行每行包含三個整數fi gi wi,分別表示第i條有向邊的出發點 目標點和長度。輸出格式 一行,包含n個用空格分隔的整...
洛谷 P3371 模板 單源最短路徑
題目大意 在乙個有向圖中,有m條邊 1 m 500000 n個點 1 n 10000 求點s到1 n個點的最短路徑長度,無最短路就輸出maxlongint。spfa 佇列優化 dis i 表示點s到i的最短路徑,一開始dis陣列為maxlongint。1.用佇列優化,就可以省略列舉每個點的時間,由o...