spfa求最短路

2021-10-10 02:25:50 字數 1090 閱讀 8629

給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環, 邊權可能為負數。

請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出impossible。

資料保證不存在負權迴路。

輸入格式

第一行包含整數n和m。

接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。

輸出格式

輸出乙個整數,表示1號點到n號點的最短距離。

如果路徑不存在,則輸出」impossible」。

資料範圍

1≤n,m≤1051≤n,m≤105,

圖中涉及邊長絕對值均不超過10000。

輸入樣例:

3 3

1 2 5

2 3 -3

1 3 4

輸出樣例:

2

#include

#include

#include

#include

using

namespace std;

const

int n =

100010

;int n, m;

int h[n]

, w[n]

, e[n]

, ne[n]

, idx;

int dist[n]

;bool st[n]

;void

add(

int a,

int b,

int c)

intspfa()

}}}return dist[n];}

intmain()

int t =

spfa()

;if(t ==

0x3f3f3f3f

)puts

("impossible");

else

printf

("%d\n"

, t)

;return0;

}

spfa求最短路

給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,邊權可能為負數。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出impossible。資料保證不存在負權迴路。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示點x和點y之間存在一條有向邊,邊長為z。輸...

spfa求最短路

題目鏈結 給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,邊權可能為負數。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出impossible。資料保證不存在負權迴路。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊...

模版 SPFA求最短路

題目測試 p4779 模板 單源最短路徑 標準版 寫在前面 如若用spfa判斷是否有負環 則相較於模版增加以下 int cnt maxn intspfa int s return1 使用模版前言 注意頂點數maxn的值 注意極大資料inf的值 include include include incl...