首页 > 其他 > 详细

kruscal

时间:2020-02-22 14:10:28      阅读:39      评论:0      收藏:0      [点我收藏+]

include<bits/stdc++.h>

using namespace std;
const int maxn=2e5+10;
int fi[maxn],ne[maxn],v[maxn],w[maxn];
struct re
{
int x,y,z;
};
re a[maxn];
int fa[maxn];
int t=-1;

bool cmp(re a,re b)
{
return a.z<b.z;
}
int find(int k)
{
if (k==fa[k]) return k;
else return find(fa[k]);
}
int main()
{
int n,m;
cin>>n>>m;
for (int i=1;i<=n;i++) fa[i]=i;
for (int i=1;i<=m;i++)
{
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
}
sort(a+1,a+1+m,cmp);
int ans=0;
int mark=0;
for (int i=1;i<=m;i++)
{
if (find(a[i].x)==find(a[i].y)) continue;
ans+=a[i].z;
fa[find(a[i].x)]=find(a[i].y);
mark++;
if (mark==n-1) break;
}
if (mark!=n-1) cout<<"orz";else cout<<ans;
}

kruscal

原文:https://www.cnblogs.com/reshuffle/p/12344994.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!