QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#202476 | #6745. Delete the Tree | real_sigma_team | WA | 4ms | 3912kb | C++23 | 1.9kb | 2023-10-06 04:40:30 | 2023-10-06 04:40:30 |
Judging History
answer
//#pragma GCC optimize("O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("unroll-loops")
//#pragma GCC target("avx,avx2,bmi,bmi2,popcnt,lzcnt")
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define all(x) x.begin(), x.end()
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
int32_t main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<vector<bool>> adj(n, vector<bool>(n));
for (int i = 0; i < n - 1; ++i) {
int u, v;
cin >> u >> v;
--u, --v;
adj[u][v] = adj[v][u] = 1;
}
vector<vector<int>> ans;
vector<int> del(n);
for (int i = 0; i < 10; ++i) {
int prev = 0;
for (int j = 0; j < n; ++j) prev += del[j] == 0;
ans.push_back({});
vector<int> c0, c1;
vector<int> col(n, 0);
auto dfs = [&](auto dfs, int u, int p) -> void {
if (del[u] == 0) {
if (col[u] == 0) c0.push_back(u);
else c1.push_back(u);
}
for (int to = 0; to < n; ++to) {
if (adj[u][to] && to != p) {
col[to] = col[u] ^ (1 ^ del[to]);
dfs(dfs, to, u);
}
}
};
dfs(dfs, 0, -1);
if (c0.size() < c1.size()) swap(c0, c1);
for (auto j : c0) {
for (auto k : c0) {
assert(adj[j][k] == 0);
}
}
for (auto j : c0) {
ans.back().push_back(j);
del[j] = 1;
}
int now = 0;
for (int j = 0; j < n; ++j) now += del[j] == 0;
assert(now * 2 <= prev);
}
while (ans.back().empty()) ans.pop_back();
cout << ans.size() << '\n';
for (auto i : ans) {
cout << i.size();
for (auto j : i) cout << ' ' << j + 1;
cout << '\n';
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3600kb
input:
5 1 2 1 3 1 4 4 5
output:
3 3 2 3 4 1 1 1 5
result:
ok
Test #2:
score: 0
Accepted
time: 4ms
memory: 3912kb
input:
500 183 443 32 443 334 443 254 443 331 443 348 443 54 443 430 443 275 443 410 443 360 443 443 468 140 443 179 443 93 443 327 443 128 443 365 443 122 443 43 443 46 443 399 443 398 443 269 443 130 443 227 443 412 443 61 443 295 443 98 443 30 443 197 443 397 443 95 443 192 443 266 443 48 443 310 443 28...
output:
2 499 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...
result:
ok
Test #3:
score: -100
Wrong Answer
time: 3ms
memory: 3832kb
input:
500 80 180 80 254 1 180 80 337 180 323 80 248 180 205 80 189 180 480 80 330 180 454 80 498 142 180 80 193 180 346 80 89 180 389 80 125 180 232 80 93 180 228 80 327 180 357 80 417 180 362 80 278 180 316 80 312 163 180 80 310 176 180 80 463 180 210 80 478 180 294 80 185 124 180 80 143 180 339 80 253 1...
output:
3 250 1 2 4 6 9 11 12 13 14 16 17 19 22 24 25 26 29 30 31 36 37 38 39 40 41 42 44 45 47 49 52 57 58 59 60 66 67 69 70 71 73 74 75 80 81 82 84 85 90 92 97 99 100 101 102 103 104 105 107 108 110 112 113 115 116 117 119 121 122 124 129 132 133 134 136 140 141 142 145 148 153 155 157 160 163 166 169 170...
result:
wrong answer