最小生成树

来源:互联网 发布:淘宝网商城儿童鞋 编辑:程序博客网 时间:2024/06/03 17:03

贪心

#include<cstdio>#include<algorithm>using namespace std;struct hh{int a, b;long long c;}tree[111111];int n, m, fa[111111];long long ans=0;int cmp(hh x, hh y){return x.c<y.c;}int find(int x){if(x!=fa[x]) return fa[x]=find(fa[x]);else return x;}int main(){scanf("%d %d", &n, &m);for(int i=1;i<=n;i++)fa[i]=i;for(int i=1;i<=m;i++)scanf("%d %d %lld", &tree[i].a, &tree[i].b, &tree[i].c);sort(tree+1,tree+m+1,cmp);for(int i=1;i<=m;i++){int x=tree[i].a, y=tree[i].b, z=tree[i].c;int xf=find(x), yf=find(y);if(xf!=yf){fa[yf]=xf;ans+=z;}}printf("%lld\n", ans);return 0;}


0 0
原创粉丝点击