洛谷 P3371 模板 單源最短路徑(弱化版)

2022-03-20 00:31:15 字數 798 閱讀 4747

洛谷傳送門

本題測試資料為隨機資料,在考試中可能會出現構造資料讓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的最短...