QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#846420 | #9911. 路南柯 | hhoppitree | 100 ✓ | 14ms | 3844kb | C++23 | 1.1kb | 2025-01-07 08:18:24 | 2025-01-07 08:18:30 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
vector<int> a;
vector< vector<int> > G, res;
void dfs(int x, int fa = 0) {
res.back().push_back(x);
vector<int> lf;
for (auto v : G[x]) if (G[v].size() == 1) lf.push_back(v);
if (a[x] ^= 1) reverse(lf.begin(), lf.end());
for (auto v : lf) res.back().push_back(v);
for (auto v : G[x]) if (v != fa && G[v].size() >= 2) dfs(v, x);
}
signed main() {
int T; scanf("%d", &T);
while (T--) {
int n; scanf("%d", &n);
G = vector< vector<int> >(n + 1, vector<int>()), a = vector<int>(n, 0), res.clear();
for (int i = 1, x, y; i < n; ++i) {
scanf("%d%d", &x, &y), G[x].push_back(y), G[y].push_back(x);
}
for (int i = 1; i <= n; ++i) {
int c = 0;
for (auto v : G[i]) c += (G[v].size()>= 2);
if (G[i].size() >= 2 && c <= 1) res.push_back({}), dfs(i);
}
printf("%d\n", (int)res.size());
for (auto x : res) {
for (int i = n - 1; ~i; --i) printf("%d%c", x[i], " \n"[!i]);
}
}
return 0;
}
详细
Subtask #1:
score: 20
Accepted
Test #1:
score: 20
Accepted
time: 1ms
memory: 3804kb
input:
10 10 4 2 5 1 8 6 1 9 3 7 1 8 10 2 6 4 3 4 10 4 3 3 1 5 3 6 3 2 3 8 7 8 2 7 10 8 9 10 5 4 10 8 10 3 6 3 9 8 1 10 4 2 2 7 8 4 10 10 6 6 8 1 7 2 6 3 5 3 9 4 2 6 9 3 1 10 2 8 10 4 9 1 9 3 5 7 6 3 1 8 8 7 4 2 10 9 2 9 1 7 1 5 6 8 2 3 9 5 10 5 4 1 10 10 2 9 8 1 8 5 6 3 7 1 6 2 9 8 2 10 4 2 10 5 7 6 2 8 7...
output:
3 7 3 10 2 4 6 8 5 9 1 7 3 9 5 1 8 6 4 10 2 5 9 1 8 6 10 2 4 7 3 2 10 7 9 8 2 4 1 5 6 3 6 5 1 4 3 2 9 8 10 7 2 6 3 1 10 9 8 5 4 7 2 7 2 5 4 9 8 1 10 6 3 2 4 2 10 8 6 9 5 3 7 1 7 1 5 3 9 8 10 6 4 2 3 5 7 10 4 2 8 1 9 6 3 5 7 6 3 9 1 8 2 10 4 6 3 9 1 10 4 2 8 5 7 2 6 4 5 10 7 1 3 9 8 2 8 2 3 9 7 1 10 ...
result:
ok Answer correct!
Subtask #2:
score: 80
Accepted
Test #2:
score: 80
Accepted
time: 14ms
memory: 3844kb
input:
100 100 90 19 79 98 23 34 50 41 31 52 61 19 50 30 49 5 95 65 22 44 72 89 49 77 27 7 48 2 28 25 56 12 97 63 98 43 10 4 50 33 12 13 54 16 100 43 23 69 53 5 56 85 39 6 64 92 100 59 2 71 44 29 59 97 64 39 75 53 59 89 16 35 67 16 6 43 38 51 36 22 58 70 3 29 9 61 99 11 49 95 27 72 73 89 23 3 14 3 61 57 26...
output:
15 17 36 1 13 12 85 56 96 74 32 18 11 99 55 58 8 70 86 46 83 30 41 50 33 81 21 80 87 15 82 57 9 61 19 90 63 62 97 31 52 71 2 48 54 67 78 16 35 93 20 26 76 91 88 40 37 84 92 64 66 39 24 6 47 45 79 98 43 100 59 7 27 72 89 42 73 69 34 60 23 14 3 29 68 44 22 51 38 65 95 94 28 25 77 49 5 53 75 10 4 8 58 ...
result:
ok Answer correct!