★★☆ 輸入檔案:phoneline.in
輸出檔案:phoneline.out
簡單對比
時間限制:1 s 記憶體限制:16 mb
farmer john打算將**線引到自己的農場,但電信公司並不打算為他提供免費服務。於是,fj必須為此向電信公司支付一定的費用。
fj的農場周圍分布著n(1 <= n <= 1,000)根按1..n順次編號的廢棄的**線桿,任意兩根**線桿間都沒有**線相連。一共p(1 <= p <= 10,000)對**線桿間可以拉**線,其餘的那些由於隔得太遠而無法被連線。
第i對**線桿的兩個端點分別為a_i、b_i,它們間的距離為l_i (1 <= l_i <= 1,000,000)。資料中保證每對最多隻出現1次。編號為1的**線桿已經接入了全國的**網路,整個農場的**線全都連到了編號 為n的**線桿上。也就是說,fj的任務僅僅是找一條將1號和n號**線桿連起來的路徑,其餘的**線桿並不一定要連入**網路。
經過談判,電信公司最終同意免費為fj鏈結k(0 <= k < n)對由fj指定的**線桿。對於此外的那些**線,fj需要為它們付的費用,等於其中最長的**線的長度(每根**線僅鏈結一對**線桿)。如果需要連 結的**線桿不超過k對,那麼fj的總支出為0。
請你計算一下,fj最少需要在**線上花多少錢。
程式名: phoneline
輸入格式:
輸入樣例 (phoneline.in):
5 7 1輸入說明:1 2 5
3 1 4
2 4 8
3 2 3
5 2 9
3 4 7
4 5 6
一共有5根廢棄的**線桿。**線桿1不能直接與**線桿4、5相連。**線桿5不能直接與**線桿1、3相連。其餘所有**線桿間均可拉**線。電信公司可以免費為fj鏈結一對**線桿。
輸出格式:
輸出樣例 (phoneline.out):
4輸出說明:
fj選擇如下的鏈結方案:1->3;3->2;2->5,這3對**線桿間需要的**線的長度分別為4、3、9。fj讓電信公司提供那條長度為9的**線,於是,他所需要購買的**線的最大長度為4。
#include#include#include#include#include#include#include#include#include#define inf 100000000using namespace std;
vectore[1005],w[1005];
int n,m,k,dist[1005],vis[1005];
bool spfa(int mid)
printf("%d\n",ans);
return 0;
}
二分 最短路 dijkstra
洛谷p1462 通往奧格瑞瑪的道路 對於我這個只是聽過二分但是從來沒有寫過二分的人來說,看到這個題目時是懵逼的,啥是求最多一次收費的最小值,只能回頭開始學習二分,在一下幾種情況下,均可以用二分來解決。1.從有序陣列中查詢某個值。2.假定乙個解並判斷是否可行 3.最大化最小值 4.最大化平均值 這個題...
csu1307 最短路 二分
time limit 1 sec memory limit 128 mb submit 392 solved 68 submit status web board alice想要從城市a出發到城市b,由於alice最近比較窮 不像集訓隊陳興老師是個rich second 所以只能選擇做火車從a到b。...
bzoj 1614 二分 最短路
題意 找一條將1號和n號 線桿連起來的路徑,其餘的 線桿並不一定要連入 網路。電信公司最終同意免費為fj鏈結k對由fj指定的 線桿。對於此外的那些 線,要求最大邊最小 明顯的二分答案,因為只要求1號和n號連起來,其他點不要求,所以跑最短路即可 對於二分出mid,我們check時,找到1號到n號的最短...