To_Heart—题解——NOIP2010 关押罪犯
思路:
,
#include<bits/stdc++.h>
using namespace std;
int pre[200005];
void FuChuZhi(int n){
for(int i=1;i<=n;i++)
pre[i]=i;
}
int Find(int x){
if(pre[x]!=x){
pre[x]=Find(pre[x]);
}
return pre[x];
}
void Join(int x,int y){
int fx=Find(x),fy=Find(y);
if(fx!=fy){
pre[fx]=fy;
}
}
struct zz{
int a,b,c;
} dp[10000005];
bool cmp(zz x,zz y){
return x.c>y.c;
}
int main(){
int n,m;
cin>>n>>m;
FuChuZhi(n*2);
for(int i=1;i<=m;++i){
scanf("%d%d%d",&dp[i].a,&dp[i].b,&dp[i].c);
}
int sum=0;
sort(dp+1,dp+m+1,cmp);
for(int i=1;i<=m;++i){
int fx=Find(dp[i].a),fy=Find(dp[i].b);
if(fx==fy){
printf("%d",dp[i].c);
return 0;
}
Join(fx,dp[i].b+n);
Join(fy,dp[i].a+n);
}
printf("0");
}