1 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int MAXN = 100000; const int MAXM = 1000000; int n, m; vector<int> e[MAXN + 5]; bool vis[MAXN + 5]; void dfs(int u) { cout << u << " "; vis[u] = true; for (int v : e[u]) { if (!vis[v]) dfs(v); } } queue<int> q; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n >> m; for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v; e[u].push_back(v); } for (int i = 1; i <= n; i++) sort(e[i].begin(), e[i].end()); // DFS for (int i = 1; i <= n; i++) vis[i] = false; dfs(1); cout << "\n"; // BFS for (int i = 1; i <= n; i++) vis[i] = false; vis[1] = true; q.push(1); while (!q.empty()) { int u = q.front(); q.pop(); cout << u << " "; for (int i = 0; i < e[u].size(); i++) { int v = e[u][i]; if (!vis[v]) { vis[v] = true; q.push(v); } } } return 0; }
信息
- ID
- 6491
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 9
- 已通过
- 3
- 上传者