洛谷傳送門
本題測試資料為隨機資料,在考試中可能會出現構造資料讓spfa不通過,如有需要請移步 p4779。
如題,給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。
第一行包含三個整數 n,m,sn,m,s,分別表示點的個數、有向邊的個數、出發點的編號。
接下來 mm 行每行包含三個整數 u,v,wu,v,w,表示一條 u \to vu→v 的,長度為 ww 的邊。
輸出一行 nn 個整數,第 ii 個表示 ss 到第 ii 個點的最短路徑,若不能到達則輸出 2^-1231−1。
注意,有向邊。
**:
#include#include#includeusing namespace std;
const int maxn=1e4+4;
const int maxm=5e5+5;
const int maxx=1e9;
const int inf=2147483647;
int n,m,s;
int tot,head[maxn],nxt[maxm<<1],to[maxm<<1],val[maxm<<1];
void add(int x,int y,int z)
queueq;
int dist[maxn];
bool v[maxn];
void spfa()
}} }
}int main()
spfa();
for(int i=1;i<=n;i++)
return 0;
}
洛谷 P3371 模板 單源最短路徑
題目大意 在乙個有向圖中,有m條邊 1 m 500000 n個點 1 n 10000 求點s到1 n個點的最短路徑長度,無最短路就輸出maxlongint。spfa 佇列優化 dis i 表示點s到i的最短路徑,一開始dis陣列為maxlongint。1.用佇列優化,就可以省略列舉每個點的時間,由o...
洛谷P3371 模板 單源最短路徑
p3371 模板 單源最短路徑 看了b站上的spfa演算法講解,重新敲了一遍這個題,學習spfa演算法。題意 給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。spfa演算法是對bellman ford演算法的優化。後者複雜度為o nm 每一輪都對所有邊確定是否更新。前者將點加入佇列中,用b...
洛谷 P3371 模板 單源最短路徑
如題,給出乙個有向圖,請輸出從某一點出發到所有點的最短路徑長度。第一行包含三個整數n m s,分別表示點的個數 有向邊的個數 出發點的編號。接下來m行每行包含三個整數fi gi wi,分別表示第i條有向邊的出發點 目標點和長度。一行,包含n個用空格分隔的整數,其中第i個整數表示從點s出發到點i的最短...