POJ 1861 Network

来源:互联网 发布:yum nothing to do 编辑:程序博客网 时间:2024/05/02 00:22
////  main.cpp//  Richard////  Created by 邵金杰 on 16/7/23.//  Copyright © 2016年 邵金杰. All rights reserved.//#include<iostream>#include<algorithm>#include<queue>using namespace std;const int maxn=15000+100;int pa[maxn],u[maxn],v[maxn],w[maxn],r[maxn];int cmp(const int i,const int j) {return w[i]<w[j];}int getroot(int a) {return pa[a]==a?a:pa[a]=getroot(pa[a]);}int main(){    int n,m,ans=-1,cnt=0;    queue<int> q;    while(!q.empty()) q.pop();    cin>>n>>m;    for(int i=1;i<=n;i++) pa[i]=i;    for(int i=0;i<m;i++) r[i]=i;    for(int i=0;i<m;i++)        cin>>u[i]>>v[i]>>w[i];    sort(r,r+m,cmp);    for(int i=0;i<m;i++)    {        int k=r[i];        int root1,root2;        root1=getroot(u[k]);        root2=getroot(v[k]);        if(root1==root2) continue;        ans=max(ans,w[k]);        pa[root2]=root1;        q.push(k);        cnt++;    }    cout<<ans<<endl;    cout<<n-1<<endl;    while(!q.empty()){        int k=q.front();q.pop();        cout<<u[k]<<" "<<v[k]<<endl;    }    return 0;}

0 0