在郊區有 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...