1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n, m; vector<int> e[5005]; int d[5005]; queue<int> q; vector<int> ans; int main() { cin >> n >> m; for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v; e[u].push_back(v); d[v]++; } for (int i = 1; i <= n; i++) if (d[i] == 0) q.push(i); bool flag = false; // 多解标记 while (!q.empty()) { if (q.size() > 1) flag = true; int now = q.front(); q.pop(); ans.push_back(now); for (int i = 0; i < e[now].size(); i++) { int v = e[now][i]; d[v]--; if (d[v] == 0) q.push(v); } } for (int i = 0; i < ans.size(); i++) cout << ans[i] << "\n"; cout << flag; return 0; }
信息
- ID
- 2714
- 时间
- 1000ms
- 内存
- 500MiB
- 难度
- 3
- 标签
- 递交数
- 8
- 已通过
- 4
- 上传者