제출 #36905

#제출 시각아이디문제언어결과실행 시간메모리
36905aomePotemkin cycle (CEOI15_indcyc)C++14
20 / 100
66 ms4120 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1005; int n, m; int par[N]; int in[N]; bool flag[N][N]; vector<int> G[N]; void dfs(int u, int r) { in[u] = r; for (auto v : G[u]) { if (par[v] == u) dfs(v, r); } } void trace(int r, int x, int y) { vector<int> vx, vy; while (x != r) vx.push_back(x), x = par[x]; vx.push_back(r); while (y != r) vy.push_back(y), y = par[y]; reverse(vy.begin(), vy.end()); for (auto i : vy) vx.push_back(i); for (auto i : vx) cout << i << ' '; exit(0); } void solve(int r) { queue<int> qu; for (int i = 1; i <= n; ++i) par[i] = 0; par[r] = r, qu.push(r); while (qu.size()) { int u = qu.front(); qu.pop(); for (auto v : G[u]) { if (!par[v]) { par[v] = u, qu.push(v); } } } for (auto u : G[r]) dfs(u, u); for (int i = 1; i <= n; ++i) { if (i == r) continue; for (auto v : G[i]) { if (par[i] == r && par[v] == r) flag[i][v] = 1; } } for (int i = 1; i <= n; ++i) { for (auto v : G[i]) { if (par[v] != i && par[i] != v && !flag[in[v]][in[i]]) { trace(r, v, i); } } } for (int i = 1; i <= n; ++i) { if (i == r) continue; for (auto v : G[i]) { if (par[i] == r && par[v] == r) flag[i][v] = 0; } } } int main() { ios::sync_with_stdio(false); cin >> n >> m; for (int i = 1; i <= m; ++i) { int u, v; cin >> u >> v; G[u].push_back(v), G[v].push_back(u); } for (int i = 1; i <= n; ++i) solve(i); cout << "no"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...