hdu1233 还是畅通工程

来源:互联网 发布:淘宝店面设计 知乎 编辑:程序博客网 时间:2024/05/24 03:01
#include <cstdio>#include <algorithm>using namespace std;int father[102];struct node{int a,b,value;}w[5002];bool cmp(const node &a,const node &b){return a.value<b.value;}int find(int x){if(x!=father[x])father[x]=find(father[x]);return father[x];}void merge(int x,int y,int z,int *tp){int a,b;a=find(x);b=find(y);if(a!=b){(*tp)+=z;father[a]=b;}}int main(){int n,m,sum;while(scanf("%d",&n)&&n){sum=0;m=n*(n-1)/2;for(int i=1;i<=m;i++)scanf("%d %d %d",&w[i].a,&w[i].b,&w[i].value);sort(w+1,w+m+1,cmp);//按边长从小到大排序for(int i=1;i<=n;i++)father[i]=i;for (int i=1;i<=m;i++){merge(w[i].a,w[i].b,w[i].value,&sum);}printf("%d\n",sum);}}
//克鲁卡斯算法,最小生成树
原创粉丝点击