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

2021-10-05 07:21:01 字數 916 閱讀 3475

題目鏈結

給定乙個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≤500,

1≤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=

1e4+

10,inf=

0x3f3f3f3f

;struct edgeedges[m]

;int n,m,k;

int dist[n]

,last[n]

;void

bellman_ford()

}}intmain()

;}bellman_ford()

;if(dist[n]

>inf/2)

puts

("impossible");

else cout<

}

bellman ford 有邊數限制的最短路

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

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...