★★ 輸入檔案:mcst.in
輸出檔案:mcst.out
簡單對比
時間限制:1.5 s 記憶體限制:128 mb
問題描述
假設要在n個城市之間建立通訊聯絡網,則連通n個城市只需要n-1條線路。這時, 如何在最少經費的前提下建立這個通訊網。在每兩個城市之間都可以設定—條線路,相應地都要付出一定的經濟代價。n個城市之間,最多可能設定n(n- 1)/2條線路,那麼,如何在這些可能的線路中選擇n-1條,以使總的耗費最少呢?
【輸入格式】
輸入檔案有若干行
第一行,乙個整數n,表示共有n個城市
第2--n+1行,每行n個數,分別表示該城市與其它城市之間路線的費用,如果城市間不能建立通訊則用-1表示
【輸出格式】
一行,1個整數,表示最少總費用
【輸入輸出樣例】
輸入檔案
6 -1 5 -1 -1 -1 -1
5 -1 50 -1 -1 10
-1 50 -1 20 10 -1
-1 -1 20 -1 60 30
-1 -1 10 60 -1 100
-1 10 -1 30 100 -1
輸出檔案
75【資料規模】
對於40%的資料,保證有n<100:
對於60%的資料,保證有n<256;
對於全部的資料,保證有n<=1501。
1 #include2 #include34using
namespace
std;56
const
int n(1506);7
intn,tot,fa[n];
8struct
edge
9 edge[n*n>>1
];12
bool
cmp(edge a,edge b)
1316
17int find(int
x)18
2122 inline void read(int &x)
2329
30int
main()
3145}46
for(int i=1; i<=n; i++) fa[i]=i;
47 sort(edge+1,edge+1+tot,cmp);
48int cnt=0,ans=0;49
for(int i=1; i<=tot; i++)
5058 printf("%d"
,ans);
59return0;
60 }
AcWing 340 通訊線路
在郊區有 n 座通訊基站,p 條 雙向 電纜,第 i 條電纜連線基站ai和bi。特別地,1 號基站是通訊公司的總站,n 號基站位於一座農場中。現在,農場主希望對通訊線路進行公升級,其中公升級第 i 條電纜需要花費li。公司正在舉行優惠活動。農產主可以指定一條從 1 號基站到 n 號基站的路徑,並指定...
POJ 3662 通訊線路
摘要 簡單來講就是在無向圖上求出一條從1到n的路徑,使路徑上第k 1大的邊權盡量小。第k大的盡量小,這種表述就容易讓人想到二分。那麼我們只要把權值大於mid的路徑權值設為1,小於mid的置為0,求1到n的最短路是否不超過n即可。include include include include incl...
雙端佇列 二分 通訊線路
在郊區有 n 座通訊基站,p 條 雙向 電纜,第 i 條電纜連線基站ai和bi。特別地,1 號基站是通訊公司的總站,n 號基站位於一座農場中。現在,農場主希望對通訊線路進行公升級,其中公升級第 i 條電纜需要花費li。公司正在舉行優惠活動。農產主可以指定一條從 1 號基站到 n 號基站的路徑,並指定...