AcWing Floyd求最短路 Floyd

2021-09-26 05:45:21 字數 1069 閱讀 7996

時/空限制:1s / 64mb

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

再給定k個詢問,每個詢問包含兩個整數x和y,表示查詢從點x到點y的最短距離,如果路徑不存在,則輸出「impossible」。

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

第一行包含三個整數n,m,k

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

接下來k行,每行包含兩個整數x,y,表示詢問點x到點y的最短距離。

共k行,每行輸出乙個整數,表示詢問的結果,若詢問兩點間不存在路徑,則輸出「impossible」。

1≤n≤200,

1≤k≤n^2

1≤m≤20000,

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

3 3 2

1 2 1

2 3 2

1 3 1

2 11 3

impossible

1

題意:給你k個查詢,求出x~y的最短距離。

思路:因為是多源最短路,需要利用floyd最短路演算法。

accepted code:

/* 

* @author: lzyws739307453

* @language: c++

*/#include using namespace std;

const int maxn = 205;

const int maxm = maxn * maxn;

const int inf = 0x3f3f3f3f;

int mp[maxn][maxn];

void floyd(int n)

int main()

floyd(n);

while (k--)

return 0;

}

最短路 求最長最短路,求最短路的路徑

hdu 1595 find the longest of the shortest include include include include include include include include include include include include include defi...

spfa求最短路

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

Dijkstra求最短路

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