給定乙個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...