求改

P3366 【模板】最小生成树

Ljh421 @ 2024-02-21 11:36:28

#include <bits/stdc++.h>
using namespace std;
const int N=200005;
int n,m,ans,cani;
int x[N],y[N],z[N],bj[N],can[N][2];
void aaa(int xxx){
    if(xxx==1) return;
    int minn=10008,mini;
    for(int j=1;j<=cani;j++){
        if(minn>can[j][2]&&can[j][2]!=0){
            minn=can[j][2];
            mini=j;
        }
    }
    bj[can[mini][1]]=1;
    ans+=can[mini][2];
    can[mini][2]=0;
    for(int i=1;i<=m;i++){
        if(can[mini][1]==x[i]&&bj[can[mini][1]]==0){
            can[++cani][1]=y[i];
            can[cani][2]=z[i];          
        }else if(can[mini][1]==y[i]&&bj[can[mini][1]]==0){
            can[++cani][1]=x[i];
            can[cani][2]=z[i];          
        }
    }
    aaa(--xxx);

    return;
}
int main(){

    cin>>n>>m;
    for(int i=1;i<=m;i++){
        cin>>x[i]>>y[i]>>z[i];
        if(x[i]==1){
            can[++cani][1]=y[i];
            can[cani][2]=z[i];
        }else if(y[i]==1){
            can[++cani][1]=x[i];
            can[cani][2]=z[i];
        }
    }
    bj[1]=1;
    aaa(n);
    for(int i=1;i<=n;i++){
        if(bj[i]==0){
            cout<<"orz";
            return 0;
        }
    }
    cout<<ans;

    return 0;
}

by Ljh421 @ 2024-02-21 11:37:23

我感觉会超时,改成超时的就行了


by xiechengxuan1061862 @ 2024-02-21 11:50:50

其实并没有超时,还不过是WA。 我看了一下,还到不了TLE


|