标签:
4 6
1 4 2534
2 3 3512
1 2 28351
1 3 6618
2 4 1805
3 4 12884
3512
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 7 const int maxn=20005; 8 const int maxm=100005; 9 10 struct node 11 { 12 int x,y,v; 13 bool operator<(const node p)const{return v>p.v;} 14 }A[maxm]; 15 16 int p[maxn],en[maxn]; 17 18 int findr(int x) 19 { 20 if(p[x]==x) return x; 21 return p[x]=findr(p[x]); 22 } 23 24 void Union(int a,int b) 25 { 26 int pa,pb; 27 pa=findr(a); 28 pb=findr(b); 29 if(pa!=pb) 30 p[pa]=pb; 31 } 32 33 int main() 34 { 35 int n,m,i; 36 scanf("%d %d",&n,&m); 37 for(i=1;i<=m;i++) 38 scanf("%d %d %d",&A[i].x,&A[i].y,&A[i].v); 39 sort(A+1,A+m+1); 40 for(i=1;i<=n;i++) 41 p[i]=i; 42 for(i=1;i<=m;i++) 43 { 44 int x,y,px,py; 45 x=A[i].x; 46 y=A[i].y; 47 px=findr(x); 48 py=findr(y); 49 if(px==py) 50 { 51 printf("%d",A[i].v); 52 return 0; 53 } 54 else 55 { 56 if(en[x]==0) en[x]=y; 57 else Union(en[x],y); 58 if(en[y]==0) en[y]=x; 59 else Union(en[y],x); 60 } 61 } 62 printf("0"); 63 return 0; 64 }
标签:
原文地址:http://www.cnblogs.com/cnblogsLSY/p/5775928.html