用kruskal为什么只有28分啊各位大佬,还re了几个点
查看原帖
用kruskal为什么只有28分啊各位大佬,还re了几个点
427711
dream_Hao楼主2022/8/3 14:34
#include<bits/stdc++.h>
using namespace std;

struct code{
    long long int a,b;
    long long int d;
};

bool dx(code a,code b){
    return a.d<=b.d;
}

int main()
{
    long long int n,m,i=0,s=0,ans=0;
    cin>>n>>m;
    code a[m];
    bool w[n+1]={0};
    while(i!=m){
        cin>>a[i].a>>a[i].b>>a[i].d;
        if(a[i].a==a[i].b){
            m--;
            continue;
        }
        i++;
    }
    sort(a,a+m,dx);
    for(i=0;i<m;i++){
        if(s==n) break;
        if(w[a[i].a] && w[a[i].b]){
            continue;
        }
        ans+=a[i].d;
        if(!w[a[i].a]){
            w[a[i].a]=1;
            s++;
        }
        if(!w[a[i].b]){
            w[a[i].b]=1;
            s++;
        }
    }
    if(s!=n) cout<<"orz";
    else cout<<ans;
    cin>>n;
}
2022/8/3 14:34
加载中...