T
include <bits/stdc++.h>
using namespace std;
define ll long long
define ull unsigned long long
define db double
define all(x) x.begin(), x.end()
define inf (1 << 30)
define lnf (1LL << 60)
typedef pair<int, int> PII;
constexpr int N = 1e5 + 7;
constexpr int P = 998244353;
int n, m;
vector
int dfn[N], low[N], idx;
bool ins[N];
stack
vector<vector
void tarjan(int u) {
dfn[u] = low[u] = ++idx;
ins[u] = true;
stk.push(u);
for (auto v : adj[u]) {
if (!dfn[v]) {
tarjan(v);
low[u] = min(low[u], low[v]);
} else if (ins[v]) {
low[u] = min(low[u], dfn[v]);
}
}
if (dfn[u] == low[u]) {
vector
while (true) {
int v = stk.top();
stk.pop(); ins[v] = false;
c.push_back(v);
if (v == u) break;
}
sort(c.begin(), c.end());
scc.push_back(c);
}
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) {
int u, v;
scanf("%d%d", &u, &v);
adj[u].push_back(v);
}
for (int i = 1; i <= n; i++) {
if (!dfn[i]) {
tarjan(i);
}
}
sort(scc.begin(), scc.end());
for (auto c : scc) {
for (auto v : c) printf("%d ", v);
puts("");
}
return 0;
}

浙公网安备 33010602011771号