码迷,mamicode.com
首页 > 其他好文 > 详细

最小生成树

时间:2014-11-06 16:48:43      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   for   sp   div   on   

//最小生成树 用了贪心的思想每次选符合条件的最短边直到边取完 或 所有点之间已可互达。
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #include<cmath> using namespace std; const int MAXN = 1000; struct edge { int u,e,v; }e[MAXN*100]; bool cmp(edge a,edge b) { return a.v<b.v; } int f[MAXN*MAXN]; int find(int x) { if(f[x]==x)return f[x]; else return f[x]=find(f[x]); } int main() { int n,m,ans=0; while(scanf("%d",&n)!=EOF && n!=0 ) { ans=0; int m=(n-1)*n/2; for(int i=1;i<=m;i++){ int x,y,z;scanf("%d%d%d",&x,&y,&z); e[i].u=x;e[i].e=y;e[i].v=z; } for(int i=1;i<=n;i++) f[i]=i; sort(e+1,e+m+1,cmp); int road=n-1; for(int i=1;i<=m;i++) { int x=find(e[i].u); int y=find(e[i].e); if(x!=y) { f[x]=y; ans+=e[i].v; road--; } if(road==0) break; } cout<<ans<<endl; } return 0; }

 

最小生成树

标签:style   blog   io   color   os   for   sp   div   on   

原文地址:http://www.cnblogs.com/coutendl/p/4079018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!