#include <bits/stdc++.h>
using namespace std;
struct edge
{
int x,y,val;
}eg[50500];
bool cmp(edge e1,edge e2)
{
return e1.val<e2.val;
}
int fa[1010];
int findfa(int x)
{
if(fa[x]==x)
return x;
return fa[x]=findfa(fa[x]);
}
int main()
{
int n,m,i,ans;
while(cin>>n>>m)
{
for(i=0;i<m;i++)
{
scanf("%d%d%d",&eg[i].x,&eg[i].y,&eg[i].val);
}
for(i=1;i<=n;i++)
fa[i]=i;
ans=0;
sort(eg,eg+m,cmp);
for(i=0;i<m;i++)
{
if(findfa(eg[i].x)!=findfa(eg[i].y))
{
ans+=eg[i].val;
fa[findfa(eg[i].x)]=findfa(eg[i].y);
}
}
printf("%d",ans);
}
}
51nod 1212 无向图最小生成树
最新推荐文章于 2024-08-31 15:12:25 发布