摘要:簡單來講就是在無向圖上求出一條從1到n的路徑,使路徑上第k+1大的邊權盡量小。第k大的盡量小,這種表述就容易讓人想到二分。
那麼我們只要把權值大於mid的路徑權值設為1,小於mid的置為0,求1到n的最短路是否不超過n即可。
#include #include#include
#include
#include
#include
#pragma gcc optimize(2)
using
namespace
std;
typedef
long
long
ll;typedef pair
int>pii;
const
int n = 2e4 + 5, mod = 1e9 + 9, inf = 0x3f3f3f3f
;int
e[n], h[n], ne[n], w[n], d[n];
intn, p, k, idx, ans;
bool
vis[n];
priority_queue
< pii, vector, greater>q;
void
init()
void add(int a, int b, int
c) int dij(int
mid) }}
return
d[n];
}int
main()
if(dij(0) ==inf)
else
else
}cout
<< ans <}
}
AcWing 340 通訊線路
在郊區有 n 座通訊基站,p 條 雙向 電纜,第 i 條電纜連線基站ai和bi。特別地,1 號基站是通訊公司的總站,n 號基站位於一座農場中。現在,農場主希望對通訊線路進行公升級,其中公升級第 i 條電纜需要花費li。公司正在舉行優惠活動。農產主可以指定一條從 1 號基站到 n 號基站的路徑,並指定...
COGS T 7 通訊線路
輸入檔案 mcst.in輸出檔案 mcst.out簡單對比 時間限制 1.5 s 記憶體限制 128 mb 問題描述 假設要在n個城市之間建立通訊聯絡網,則連通n個城市只需要n 1條線路。這時,如何在最少經費的前提下建立這個通訊網。在每兩個城市之間都可以設定 條線路,相應地都要付出一定的經濟代價。n...
雙端佇列 二分 通訊線路
在郊區有 n 座通訊基站,p 條 雙向 電纜,第 i 條電纜連線基站ai和bi。特別地,1 號基站是通訊公司的總站,n 號基站位於一座農場中。現在,農場主希望對通訊線路進行公升級,其中公升級第 i 條電纜需要花費li。公司正在舉行優惠活動。農產主可以指定一條從 1 號基站到 n 號基站的路徑,並指定...