kruscal演算法是加邊。
記錄每條路的權值,然後每次都選擇權值最小的邊加入集合,同時選中的每條邊的兩個點也用並查集合並,
直到所有的點都被加入了,就是最小生成樹。
時間複雜度只和邊有關係,o(e * loge)。
hihocoder1098
#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn=1e6+7;
#define inf 0x3f3f3f3f
int fa[maxn];
int init(int n)
int find(int x)
int union(int a,int b)
struct edgeedge[maxn];
bool cmp(edge a,edge b)
int n,m;
int main()
sort(edge,edge+m,cmp);//邊權排序
int ans=0;
for(int i=0;i}
printf("%d\n",ans);
return 0;
}
最小生成樹二 Kruscal演算法
還是直接看輸入輸出 輸入每個測試點 輸入檔案 有且僅有一組測試資料。在一組測試資料中 第1行為2個整數n m,表示小hi擁有的城市數量和小hi篩選出路線的條數。接下來的m行,每行描述一條路線,其中第i行為3個整數n1 i,n2 i,v i,分別表示這條路線的兩個端點和在這條路線上建造道路的費用。對於...
最小生成樹二 Kruscal演算法( )
描述 每個測試點 輸入檔案 有且僅有一組測試資料。在一組測試資料中 第1行為2個整數n m,表示小hi擁有的城市數量和小hi篩選出路線的條數。接下來的m行,每行描述一條路線,其中第i行為3個整數n1 i,n2 i,v i,分別表示這條路線的兩個端點和在這條路線上建造道路的費用。對於100 的資料,滿...
最小生成樹二 Kruscal演算法
隨著小hi擁有城市數目的增加,在之間所使用的prim演算法已經無法繼續使用了 但是幸運的是,經過計算機的分析,小hi已經篩選出了一些比較適合建造道路的路線,這個數量並沒有特別的大。小ho聽到了這個問題,發表了感慨 這不就是之前最短路問題的時候針對點集變大,但是邊集很小的稀疏圖麼?和spfa演算法當時...