这个题解有点问题

题目总版

w135 @ 2024-11-23 12:33:46

rt

错因:

输入包含若干组测试数据

这是一篇好题解真的不太想让他消失


by laialaodi @ 2024-11-23 12:37:38

哪一篇?@w135


by zxw1234567 @ 2024-11-23 12:40:09

@laialaodi P2839 【畅通工程】


by w135 @ 2024-11-23 12:52:45

可过版本

/*
edges[N*6];
会变成
edges[1e3+10*6]
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll father[6005],n,m,a,b,ans=-1;
ll find(int x){
    if(father[x]==x) return x;
    return father[x]=find(father[x]);
}

int main(){
    cin>>n;
    while(n!=0){
        ans=-1;
        for(int i=1;i<=n;i++){
            father[i]=i;
        }
        cin>>m;
        for(int i=1;i<=m;i++){
            cin>>a>>b;
            father[find(a)]=find(b);
        }
        for(int i=1;i<=n;i++){
            if(father[i]==i)ans++;
        }
        cout<<ans<<'\n';
        cin>>n;
    }

    return 0;
}

by w135 @ 2024-11-23 12:55:15

@ghj1222 你最好改一下


|