hdu 1233 还是畅通工程
来源:互联网 发布:建站软件 编辑:程序博客网 时间:2024/09/21 09:18
#include<stdio.h>#include<math.h>#include<stdlib.h>int m,n,f[100];struct mapy{ int x,y,len;}map[5000];int cmp(const void *a,const void *b){ return (*(struct mapy *)a).len-(*(struct mapy *)b).len;}int find(int a){ if(a!=f[a]) f[a]=find(f[a]); return f[a];}void dj(){ int i,num,sum; for(i=0;i<100;i++) f[i]=i; qsort(map,m,sizeof(map[0]),cmp); sum=0;num=0; for(i=0;i<m;i++) { if(find(map[i].x)!=find(map[i].y)) { sum=sum+map[i].len; f[find(map[i].x)]=find(map[i].y); num++; } if(num==n-1) break; } printf("%d\n",sum);}int main(){ while(scanf("%d",&n),n) { for(m=0;m<n*(n-1)/2;m++) scanf("%d%d%d",&map[m].x,&map[m].y,&map[m].len); dj(); } return 0;}