[水][最小生成树] vijos 繁华的都市

题目传送门:题目
codevs上应该也有

#include<bits/stdc++.h>
using namespace std;
int n,m;
struct note
{
    int s,v,w;
}e[1000100];
bool book[310000];
bool cmp(note a,note b)
{
    return a.w<b.w;
}
int fa[310000];
int ff(int x)
{
    return fa[x]=(fa[x]==x)?x:ff(fa[x]);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    cin>>e[i].s>>e[i].v>>e[i].w;
    sort(e+1,e+m+1,cmp);
    int rest=n-1;
    int ans1=0,ans2=0;
    for(int i=1;i<=m;i++)
    fa[i]=i;
    for(int i=1;i<=m;i++)
    {
        
        if(!rest) break; 
        int p1,p2;
        p1=ff(e[i].s);
        p2=ff(e[i].v);
        if(p1==p2) continue;
        fa[p1]=p2;
        ans1++;
        rest--;
        ans2=e[i].w;
    }
cout<<ans1<<" "<<ans2;

    
return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容