bellman ford 有邊數限制的最短路

2021-10-03 04:28:56 字數 1217 閱讀 7722

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

請你求出從1號點到n號點的最多經過k條邊的最短距離,如果無法從1號點走到n號點,輸出impossible。

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

請你求出從1號點到n號點的最多經過k條邊的最短距離,如果無法從1號點走到n號點,輸出impossible。

注意:圖中可能存在負權迴路

輸入格式

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

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

輸出格式

輸出乙個整數,表示從1號點到n號點的最多經過k條邊的最短距離。

如果不存在滿足條件的路徑,則輸出「impossible」。

資料範圍

1≤n,k≤5001≤n,k≤500,

1≤m≤100001≤m≤10000,

任意邊長的絕對值不超過10000。

輸入樣例:

3 3 1

1 2 1

2 3 1

1 3 3

輸出樣例:

3
#include #include #include using namespace std;

const int n = 510, m = 10010;

int n, m, k;

int dist[n], backup[n];//遍歷之前備份dist

struct edge

edges[m];

int bellman_ford()

}if (dist[n] > 0x3f3f3f3f / 2) return -1;//0x3f3f3f3f / 2

return dist[n];

}int main()

; }

int t = bellman_ford();

if (t == -1) puts("impossible");

else printf("%d\n", t);

}

有邊數限制的最短路(bellman ford演算法)

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

bellman ford 有邊數限制的最短路

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

Bellman ford 有邊數限制的最短路

給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,邊權可能為負數。請你求出從1號點到n號點的最多經過k條邊的最短距離,如果無法從1號點走到n號點,輸出impossible。注意 圖中可能 存在負權迴路 include using namespace std const int n 505,m 1...