#include<bits/stdc++.h>
using namespace std;
int fi[105],num;
typedef struct no
{
int u,v,q;
}node;
node a[10005];
int cmp(node d,node b)
{
return d.q<b.q;
}
int find(int n)
{
while(n!=fi[n])
{
n=fi[n];
}
return n;
}
void klz(int x,int y,int z)
{
x=find(x);
y=find(y);
if(x!=y)
{
fi[x]=y;
num+=z;
}
}
int main()
{
int n,m,i;
while(~scanf("%d %d",&n,&m))
{
num=0;
for(i=1;i<=n;i++)
fi[i]=i;
for(i=1;i<=m;i++)
{
scanf("%d %d %d",&a[i].u,&a[i].v,&a[i].q);
}
sort(a+1,a+m+1,cmp);
for(i=1;i<=m;i++)
{
klz(a[i].u,a[i].v,a[i].q);
}
printf("%d\n",num);
}
}
最小生成树
最新推荐文章于 2025-04-18 23:13:20 发布