为什么第九个案例wa ,图的遍历方法
查看原帖
为什么第九个案例wa ,图的遍历方法
524191
Man_CCNU楼主2021/12/13 16:31
#include<iostream>
#include<cstring>

using namespace std;

const int N = 2e5 + 10;
int h[N], e[N], ne[N], n, m, idx, res;
bool f[N];

void connec(int x, int y)
{
    e[idx] = y;
    ne[idx] = h[x];
    h[x] = idx++;

    return;
}
void dfs(int i)
{
    f[i] = 1;
    for (int j = h[i]; j != -1; j = ne[j]) {
        int v = e[j];
        if (f[v]) continue;
        dfs(v);
    }
}
int main()
{
    memset(h, -1, sizeof h);
    cin >> n >> m;
    for (int i = 1; i <= m; i++) {
        int x, y;
        cin >> x >> y;
        connec(x, y);
        connec(y, x);
    }
    for (int i = 1; i <= n; i++) {
        if (f[i]) continue;
        res++;
        dfs(i);
    }
    cout << res << endl;

    return 0;
}
2021/12/13 16:31
加载中...