單源最短路的綜合應用 通訊線路

2021-10-04 16:28:24 字數 1388 閱讀 2405

在郊區有 n 座通訊基站,p 條 雙向 電纜,第 i 條電纜連線基站aiai和bibi。

特別地,1 號基站是通訊公司的總站,n 號基站位於一座農場中。

現在,農場主希望對通訊線路進行公升級,其中公升級第 i 條電纜需要花費lili。

**公司正在舉行優惠活動。

農產主可以指定一條從 1 號基站到 n 號基站的路徑,並指定路徑上不超過 k 條電纜,由**公司免費提供公升級服務。

農場主只需要支付在該路徑上剩餘的電纜中,公升級**最貴的那條電纜的花費即可。

求至少用多少錢可以完成公升級。

輸入格式

第1行:三個整數n,p,k。

第2…p+1行:第 i+1 行包含三個整數ai,bi,liai,bi,li。

輸出格式

包含乙個整數表示最少花費。

若1號基站與n號基站之間不存在路徑,則輸出」-1」。

資料範圍

0≤k1≤p≤100001≤p≤10000,

1≤li≤10000001≤li≤1000000

輸入樣例:

5 7 1

1 2 5

3 1 4

2 4 8

3 2 3

5 2 9

3 4 7

4 5 6

輸出樣例:

4

#include

#include

#include

#include

#include

using

namespace std;

const

int n =

1010

, m =

20010

;int n, m, k;

int h[n]

, e[m]

, ne[m]

, w[m]

, idx;

int dist[n]

;deque<

int> q;

bool st[n]

;void

add(

int a,

int b,

int c)

bool

check

(int bound)}}

return dist[n]

<= k;

}int

main()

int l =

0, r =

1e6+1;

while

(l < r)

if(r ==

1e6+

1) cout <<-1

<< endl;

else cout << r << endl;

return0;

}

單源最短路徑的求法

2.最短路徑 演算法思想 設圖中有n個結點,設定乙個集會u,存放已經求出最短路徑的結點 初始時u中的元素是源點 v u是尚未確定最短路徑的頂點的集合。每次從v u集合中找這樣乙個結點best j best j是u集合中結點的鄰接點,到源點的距離最短 等於到父結點的距離加上父結點到源點的距離 然後把該...

求單源的最短路徑

用鄰接表的方法儲存網 include include include include define inf 0x3f3f3f define node max 20 using namespace std vector path node max 儲存路徑 int d node max 儲存路徑長度 ...

通訊網Project之 單源單宿最短路問題

最基本的vertex類 ifndef vertex h define vertex h include include define inf int max class vertex endif 接下來是edge類 ifndef edge h define edge h include vertex...