poj2395

来源:互联网 发布:python 参数估计 编辑:程序博客网 时间:2024/05/16 14:43
/*
分析:
    最小生成树,求最大边。


                             2012-07-30 11:24
*/








#include"stdio.h"#include"stdlib.h"int n;struct A{int a,b;int len;int flag;}E[2500000];int K;int set[2011];int cmp(const void *a,const void *b){struct A *c,*d;c=(struct A *)a;d=(struct A *)b;return c->len-d->len;}void build(int num){int i;for(i=1;i<=num;i++)set[i]=i;}int find(int k){if(set[k]==k)return k;set[k]=find(set[k]);return set[k];}void Union(int f1,int f2){set[f1]=f2;}int MAX(int a,int b){return a>b?a:b;}int Krustal(){int i;int ans;int f1,f2;for(i=0;i<K;i++)E[i].flag=0;for(i=0;i<K;i++){f1=find(E[i].a);f2=find(E[i].b);if(f1==f2)continue;Union(f1,f2);E[i].flag=1;}ans=0;for(i=0;i<K;i++)if(E[i].flag)ans=MAX(ans,E[i].len);return ans;}int main(){int m;int a,b,c;while(scanf("%d%d",&n,&m)!=-1){build(n);for(K=0;K<m;K++){scanf("%d%d%d",&a,&b,&c);E[K].a=a;E[K].b=b;E[K].len=c;}qsort(E,K,sizeof(E[0]),cmp);printf("%d\n",Krustal());}return 0;}


原创粉丝点击