洛谷 最小生成树模版 代码AC 最新

.因为是最后一个WA了 所以下载了数据点,看题解没有一个是输出orz的 结果最后一个就是要输出orz 给我气到了 所以写了这个文章

浪费我haoji

.

.

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
vector<int>father(5003,0);
struct node{
    int x,y,z;
}node[maxn];
int n,m;
bool cmp(struct node&a,struct node&b){
    return a.z<b.z;
}
void init(){
    for(int i=1;i<=n;i++){
        father[i]=i;
    }
}
int find(int u){
    if(u==father[u]){
        return u;
    }
    else{
        return father[u]=find(father[u]);
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>node[i].x>>node[i].y>>node[i].z;
    }
    sort(node+1,node+1+m,cmp);
    long long result=0;
    int flag=0;
    init();
    int endflag=0;
    for(int i=1;i<=m;i++){
        int u=node[i].x;
        int v=node[i].y;
        u=find(u);
        v=find(v);
        if(u==v){
            continue;
        }
            result+=node[i].z;
            father[v]=u;
            endflag++;
            
        if(endflag==n-1){
            cout<<result;
            return 0;
        }

    }
    cout<<"orz"<<endl;
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值