描述
每個測試點(輸入檔案)有且僅有一組測試資料。
在一組測試資料中:
第1行為2個整數n、m,表示小hi擁有的城市數量和小hi篩選出路線的條數。
接下來的m行,每行描述一條路線,其中第i行為3個整數n1_i, n2_i, v_i,分別表示這條路線的兩個端點和在這條路線上建造道路的費用。
對於100%的資料,滿足n<=10^5, m<=10^6,於任意i滿足1<=n1_i, n2_i<=n, n1_i≠n2_i, 1<=v_i<=10^3.
對於100%的資料,滿足一定存在一種方案,使得任意兩座城市都可以互相到達。
輸出
對於每組測試資料,輸出1個整數ans,表示為了使任意兩座城市都可以通過所建造的道路互相到達至少需要的建造費用。
sample input
5 29
1 2 674
2 3 249
3 4 672
4 5 933
1 2 788
3 4 147
2 4 504
3 4 38
1 3 65
3 5 6
1 5 865
1 3 590
1 4 682
2 4 227
2 4 636
1 4 312
1 3 143
2 5 158
2 3 516
3 5 102
1 5 605
1 4 99
4 5 224
2 4 198
3 5 894
1 5 845
3 4 7
2 4 14
1 4 185
sample output
92
#include
#include
using
namespace
std;
int pre[1000000];
const
int inf =0x3f3f3f3f;
int n,m;
struct st
k[1000000];
bool cmp(st x,st y)
int find(int x)
int main()
sort(k+1,k+1+m,cmp);
for(int i=1;i<=m;i++)
}printf("%d\n",ans);
return
0;}
最小生成樹二 Kruscal演算法
還是直接看輸入輸出 輸入每個測試點 輸入檔案 有且僅有一組測試資料。在一組測試資料中 第1行為2個整數n m,表示小hi擁有的城市數量和小hi篩選出路線的條數。接下來的m行,每行描述一條路線,其中第i行為3個整數n1 i,n2 i,v i,分別表示這條路線的兩個端點和在這條路線上建造道路的費用。對於...
最小生成樹二 Kruscal演算法
隨著小hi擁有城市數目的增加,在之間所使用的prim演算法已經無法繼續使用了 但是幸運的是,經過計算機的分析,小hi已經篩選出了一些比較適合建造道路的路線,這個數量並沒有特別的大。小ho聽到了這個問題,發表了感慨 這不就是之前最短路問題的時候針對點集變大,但是邊集很小的稀疏圖麼?和spfa演算法當時...
最小生成樹二Kruscal演算法
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述隨著小hi擁有城市數目的增加,在之間所使用的prim演算法已經無法繼續使用了 但是幸運的是,經過計算機的分析,小hi已經篩選出了一些比較適合建造道路的路線,這個數量並沒有特別的大。所以問題變成了 小hi現在手上擁有n座城市...