记录编号 605114 评测结果 AWAAAAAAAA
题目名称 2453.次小生成树 最终得分 90
用户昵称 Gravatar20120223 是否通过 未通过
代码语言 C++ 运行时间 0.230 s
提交时间 2025-08-14 08:38:21 内存使用 4.19 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N = 100005 ;
const int M = 300005 ;
typedef long long ll;
int fa[N],n,m;
ll ans=0;
struct Edge
{
    int x;
    int y;
    int z;
}t[M];
bool cmp(Edge a,Edge b)
{
    return a.z<b.z;
}
int f(int r)
{
    if(fa[r]==r)return r;
    return fa[r]=f(fa[r]);
}
int main()
{
    freopen("secmst.in","r",stdin);
    freopen("secmst.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    fa[i]=i;
    for(int i=1;i<=m;i++)
    cin>>t[i].x>>t[i].y>>t[i].z;
    sort(t+1,t+m+1,cmp);
    for(int i=1;i<=m;i++)
    {
        int ax=f(t[i].x);
        int ay=f(t[i].y);
        if(ax==ay)continue;
        ans+=t[i].z;
        fa[ax]=ay;
    }
    cout<<ans+1;
 }