美文网首页
[水][最小生成树] vijos 繁华的都市

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

作者: 噩噩噩噩噩v | 来源:发表于2017-09-19 16:00 被阅读0次

题目传送门:题目
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;
}

相关文章

网友评论

      本文标题:[水][最小生成树] vijos 繁华的都市

      本文链接:https://www.haomeiwen.com/subject/kkzwsxtx.html