听说jdy自悟prim %%% 我不会呀
丢一发kruskal走人
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int sz = 200010;
int fa[sz];
int n,m;
int find(int x)
{
if(fa[x] == x)
return x;
return fa[x] = find(fa[x]);
}
struct tree
{
int f,t,d;
}e[sz];
bool cmp(tree a,tree b)
{
return a.d > b.d;
}
int Kruskal()
{
int ans = 0;
for(int i = 1 ; i <= n ; i ++)
f[i] = i;
sort(l+1,l+m+1,cmp);
for(int i = 1 ; i <= m ; i ++)
{
int u = e[i].f , v = e[i].t;
int fu = find(u) , fv = find(v);
if(fu != fv)
{
fa[fu] = fv;
ans += e[i].d;
}
}
return ans;
}