20分求调
查看原帖
20分求调
987592
NJYNsss楼主2025/7/21 19:23
#include <bits/stdc++.h>
#define int long long
int n, m;
int x, y;
std::vector<std::set<int> > g;
void dfs(int x);
void bfs(int y);
bool vis[999999];
signed main() {
    std::cin >> n >> m;
    g.resize(n + 1);
    for (int i = 0; i < m; i++) {
        std::cin >> x >> y;
        g[x].insert(y);
    }
    dfs(1);
    std::cout << std::endl;
    memset(vis, false, sizeof(vis));
    std::cout << "1 ";
    bfs(1);
    std::cout << std::endl;
    return 0;
}
void dfs(int x) {
    std::cout << x << ' ';
    for (auto i: g[x]) {
        if (!vis[i]) {
            vis[i] = true;
            dfs(i);
            // vis[g[x][i]] = false;
        }
    }
    return ;
}
std::queue<int> q;
void bfs(int x) {
    q.push(x);
    while (!q.empty()) {
        int t = q.front();
        q.pop();
        for (int i: g[t]) {
            if (!vis[i]) {
                vis[i] = true;
                q.push(i);
                std::cout << i << ' ';
            }
        }
    }
    return ;
}

#1 AC, 其它WA

2025/7/21 19:23
加载中...