From 95ce0ec323ca3d36befe07f80479a8c5cce9447e Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Mon, 19 Sep 2022 21:14:08 +0800 Subject: [PATCH] =?UTF-8?q?T275388=20=E9=80=80=E4=BC=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=20II?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://www.luogu.com.cn/record/86998689 --- Luogu/T275388/T275388.cpp | 88 ++++++++++++++++++++++++++++++ Luogu/T275388/samples/checker.cpp | 3 + Luogu/T275388/samples/ex_king4.in | 3 + Luogu/T275388/samples/ex_king4.out | 3 + 4 files changed, 97 insertions(+) create mode 100644 Luogu/T275388/T275388.cpp create mode 100644 Luogu/T275388/samples/checker.cpp create mode 100644 Luogu/T275388/samples/ex_king4.in create mode 100644 Luogu/T275388/samples/ex_king4.out diff --git a/Luogu/T275388/T275388.cpp b/Luogu/T275388/T275388.cpp new file mode 100644 index 00000000..2bc4cf48 --- /dev/null +++ b/Luogu/T275388/T275388.cpp @@ -0,0 +1,88 @@ +#include +#include +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int N = 2e5 + 5; + +int n, m; +bool vis[N]; +std::vector g[N], a, b; + +void check() { + if (a.size() == n - a.size() - b.size()) { + std::fill_n(vis, N, false); + + cout << b.size() << ' ' << a.size() << endl; + + for (const int &x : b) { + cout << x << ' '; + + vis[x] = true; + } + + cout << endl; + + for (const int &x : a) { + cout << x << ' '; + + vis[x] = true; + } + + cout << endl; + + for (int i = 1; i <= n; i++) { + if (!vis[i]) { + cout << i << ' '; + } + } + + cout << endl; + + exit(0); + } +} + +void dfs(int u) { + vis[u] = true; + b.emplace_back(u); + check(); + + for (const int &v : g[u]) { + if (vis[v]) continue; + + dfs(v); + check(); + } + + b.pop_back(); + a.emplace_back(u); +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + cin >> n >> m; + + for (int i = 1; i <= m; i++) { + int u, v; + + cin >> u >> v; + + g[u].emplace_back(v); + g[v].emplace_back(u); + } + + for (int i = 1; i <= n; i++) { + if (!vis[i]) dfs(i); + } + + cout << -1 << endl; + + return 0; +} diff --git a/Luogu/T275388/samples/checker.cpp b/Luogu/T275388/samples/checker.cpp new file mode 100644 index 00000000..3b756c4e --- /dev/null +++ b/Luogu/T275388/samples/checker.cpp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c6f04acca8b4a3385306bc0f20b951ff7a77a94220370f0d9de7ae9258af8a1 +size 1771 diff --git a/Luogu/T275388/samples/ex_king4.in b/Luogu/T275388/samples/ex_king4.in new file mode 100644 index 00000000..362703c8 --- /dev/null +++ b/Luogu/T275388/samples/ex_king4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4ac88e476e834b0d505e01a623e5dd97e79e26f5339f027358d00d7d09f8f01 +size 97431 diff --git a/Luogu/T275388/samples/ex_king4.out b/Luogu/T275388/samples/ex_king4.out new file mode 100644 index 00000000..0a1cacde --- /dev/null +++ b/Luogu/T275388/samples/ex_king4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a7fba1dcdb1358b1eb9eeec7114e50d823b3a7cd7d4a79597485197248fe181 +size 48902