QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#134972 | #6634. Central Subset | PanC_ake# | TL | 1434ms | 47252kb | C++20 | 1.8kb | 2023-08-05 10:25:01 | 2023-08-05 10:25:03 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int maxn = 200010;
int n, m, N, rt, cnt, d, dv;
int ont[maxn], vis[maxn], dep[maxn], fa[maxn];
vector<int> e[maxn], g[maxn];
vector<int> ans;
void dfs0(int u) {
ont[u] = 1;
for(int v: e[u]) {
if(ont[v]) continue;
g[u].push_back(v);
g[v].push_back(u);
dfs0(v);
}
}
void dfs1(int u, int f) {
dep[u] = dep[f] + 1;
if(!vis[u]) {
if(dep[u] > d) {
dv = u;
d = dep[u];
}
}
for(int v: g[u]) {
if(v == f) continue;
fa[v] = u;
dfs1(v, u);
}
}
void dfs2(int u, int f) {
dep[u] = dep[f] + 1;
if(dep[u] - 1 <= N && !vis[u]) {
vis[u] = 1;
cnt++;
}
for(int v: g[u]) {
if(v == f) continue;
dfs2(v, u);
}
}
int climb(int u) {
for(int i = 1; i <= N; i++) u = fa[u];
return u;
}
void solve() {
ans.clear();
cnt = 0;
cin >> n >> m;
N = ceil(sqrt(n));
for(int i = 1; i <= n; i++) {
vis[i] = dep[i] = fa[i] = ont[i] = 0;
e[i].clear();
g[i].clear();
}
for(int i = 1; i <= m; i++) {
int u, v;
cin >> u >> v;
e[u].push_back(v);
e[v].push_back(u);
}
dfs0(1);
int rt = 1;
while(true) {
assert(ans.size() <= n);
if(cnt == n) break;
fa[rt] = 0;
d = 0;
dfs1(rt, 0);
if(d >= N + 1) {
rt = climb(dv);
}
dfs2(rt, 0);
ans.push_back(rt);
}
cout << ans.size() << endl;
for(int v: ans) cout << v << " ";
cout << endl;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
while(t--) solve();
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 14296kb
input:
2 4 3 1 2 2 3 3 4 6 7 1 2 2 3 3 1 1 4 4 5 5 6 6 4
output:
1 2 1 1
result:
ok correct (2 test cases)
Test #2:
score: 0
Accepted
time: 13ms
memory: 14560kb
input:
10000 15 14 13 12 5 4 9 8 11 12 15 14 10 9 14 13 2 3 2 1 6 5 10 11 3 4 7 6 8 7 6 5 2 1 2 4 4 6 2 3 3 5 10 9 8 3 9 4 5 6 5 10 3 2 5 4 2 7 1 2 4 3 2 1 2 1 2 1 2 1 9 8 9 8 5 4 1 2 6 5 3 4 3 2 7 8 7 6 2 1 1 2 14 13 3 10 5 6 2 9 11 4 2 3 2 1 8 7 13 6 5 4 5 12 6 7 4 3 7 14 16 15 2 3 2 1 6 10 6 9 6 4 9 11 ...
output:
2 11 5 1 1 1 2 1 1 1 1 2 6 4 1 1 1 4 2 10 6 1 1 2 15 6 1 3 1 2 1 5 1 1 2 11 5 1 1 1 1 1 2 1 1 1 2 1 3 1 4 1 5 1 1 2 11 5 1 1 1 5 1 1 1 1 2 16 6 1 2 1 4 2 7 6 1 1 1 3 1 2 1 3 2 7 6 1 1 2 8 5 1 1 1 3 1 2 1 1 2 6 5 1 3 1 3 1 5 1 1 2 13 6 1 1 1 3 1 4 ...
result:
ok correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 55ms
memory: 14516kb
input:
100 2000 1999 529 528 885 884 1221 1222 375 374 245 244 758 757 711 710 1521 1522 1875 1874 749 750 823 822 1959 1958 1767 1766 155 154 631 632 825 824 1330 1331 457 456 1344 1343 1817 1818 413 414 582 583 1828 1827 1335 1336 654 655 162 161 1668 1667 1966 1967 1472 1471 1185 1184 518 517 1509 1510 ...
output:
22 1955 46 1864 137 1773 228 1682 319 1591 410 1500 501 1409 592 1318 683 1227 774 1136 865 1045 956 1 1 12 956 46 867 135 778 224 689 313 600 402 511 491 4 1170 1047 86 107 1 1 22 1955 46 1864 137 1773 228 1682 319 1591 410 1500 501 1409 592 1318 683 1227 774 1136 865 1045 956 1 1 12 956 46 ...
result:
ok correct (100 test cases)
Test #4:
score: 0
Accepted
time: 202ms
memory: 18212kb
input:
10 14914 14913 13959 13958 3643 3642 4582 4581 13378 13379 981 980 12901 12902 12355 12356 14692 14691 9670 9669 14632 14631 1441 1440 1367 1368 6237 6238 8297 8298 1021 1020 5096 5097 4773 4774 7778 7779 3013 3014 5536 5535 11621 11620 13904 13903 3050 3049 14179 14178 7471 7472 13380 13381 7403 74...
output:
61 14791 124 14544 371 14297 618 14050 865 13803 1112 13556 1359 13309 1606 13062 1853 12815 2100 12568 2347 12321 2594 12074 2841 11827 3088 11580 3335 11333 3582 11086 3829 10839 4076 10592 4323 10345 4570 10098 4817 9851 5064 9604 5311 9357 5558 9110 5805 8863 6052 8616 6299 8369 6546 8122 6793 7...
result:
ok correct (10 test cases)
Test #5:
score: 0
Accepted
time: 57ms
memory: 17032kb
input:
10 20000 19999 6831 6760 15763 15900 10362 10184 5821 5880 17555 17389 16708 16574 11592 11436 186 209 19380 19313 8867 8718 12100 12237 16245 16110 18464 18568 4713 4665 17412 17578 18666 18750 4360 4322 12350 12502 4054 4103 2874 2849 8097 8202 14489 14639 1056 1016 13500 13581 2435 2391 199 173 8...
output:
2 6126 1143 4 10809 176 8283 5321 3 11257 3724 8040 3 10584 9863 2703 5 15169 14623 6490 5958 1288 4 15046 4075 6159 2326 4 15985 972 6581 547 4 7843 5415 6192 2004 4 14312 1025 1588 27 4 8901 8799 7775 3661
result:
ok correct (10 test cases)
Test #6:
score: 0
Accepted
time: 865ms
memory: 47252kb
input:
1 200000 199999 136649 136648 44943 44944 7148 7149 50332 50333 149967 149966 28976 28975 78549 78550 178698 178697 96434 96433 7859 7858 88976 88977 23348 23347 161682 161681 125393 125392 67892 67893 73592 73593 179054 179055 110841 110842 163714 163715 7982 7981 56309 56310 196486 196485 19176 19...
output:
223 199552 449 198655 1346 197758 2243 196861 3140 195964 4037 195067 4934 194170 5831 193273 6728 192376 7625 191479 8522 190582 9419 189685 10316 188788 11213 187891 12110 186994 13007 186097 13904 185200 14801 184303 15698 183406 16595 182509 17492 181612 18389 180715 19286 179818 20183 178921 21...
result:
ok correct (1 test case)
Test #7:
score: 0
Accepted
time: 550ms
memory: 38028kb
input:
1 200000 199999 58280 58281 132016 32016 45157 45158 35446 35445 158979 58979 185831 85831 74289 174289 195645 95645 31857 131857 168766 68766 95607 95606 39817 39818 58215 158215 74893 74894 18897 118897 63013 163013 58501 58502 94475 194475 77574 77573 152977 52977 3731 103731 20407 20408 186570 8...
output:
112 99553 449 98658 1344 97763 2239 96868 3134 95973 4029 95078 4924 94183 5819 93288 6714 92393 7609 91498 8504 90603 9399 89708 10294 88813 11189 87918 12084 87023 12979 86128 13874 85233 14769 84338 15664 83443 16559 82548 17454 81653 18349 80758 19244 79863 20139 78968 21034 78073 21929 77178 22...
result:
ok correct (1 test case)
Test #8:
score: 0
Accepted
time: 80ms
memory: 28692kb
input:
1 200000 199999 84088 84001 74829 74679 40726 41179 113019 113238 112813 113025 77336 77177 60908 61208 4521 4639 144249 144094 102763 102692 112856 113070 2428 2356 114005 113754 168454 168270 114538 114311 36802 36341 170182 170306 31641 32012 92503 92395 143570 143702 6871 6715 51503 51997 140883...
output:
3 149019 55837 118805
result:
ok correct (1 test case)
Test #9:
score: 0
Accepted
time: 11ms
memory: 15452kb
input:
1000 11 19 8 11 4 11 2 11 2 3 8 3 6 1 6 4 11 5 5 3 10 8 7 10 4 7 3 9 5 1 5 7 3 6 10 1 11 7 2 9 70 109 32 69 26 15 65 46 70 62 50 23 17 16 15 31 2 23 18 11 48 57 19 29 52 42 26 31 7 1 53 66 5 69 58 20 59 38 3 4 9 53 7 56 52 66 66 28 22 51 2 6 22 35 5 28 25 51 27 13 26 56 10 50 53 56 60 48 67 33 61 23...
output:
1 8 3 4 16 27 2 7 4 3 72 39 14 3 33 32 56 2 4 14 3 36 24 35 3 29 51 21 3 69 56 3 4 33 19 72 22 2 18 19 3 13 65 29 1 2 2 44 2 2 21 26 2 12 3 2 8 17 1 1 3 21 39 54 3 43 13 63 3 22 8 19 2 3 30 2 35 17 3 26 11 4 3 69 52 41 3 7 67 50 2 37 14 3 58 40 73 2 28 33 3 52 32 30 3 1...
result:
ok correct (1000 test cases)
Test #10:
score: 0
Accepted
time: 0ms
memory: 15136kb
input:
100 76 104 30 11 26 40 4 59 35 21 13 44 3 73 25 39 33 35 63 9 9 19 42 47 22 32 44 35 74 68 53 12 50 41 53 52 69 40 31 49 21 14 23 21 11 48 53 67 48 74 15 24 73 47 6 62 17 33 67 48 7 22 68 46 41 39 20 1 9 71 15 67 65 56 38 68 30 9 54 26 8 47 62 56 14 61 59 20 46 64 75 46 50 49 26 25 10 70 36 27 14 29...
output:
3 73 30 67 4 20 2 85 64 3 24 4 27 4 9 41 43 52 3 57 13 54 2 32 13 2 28 49 3 35 30 50 3 17 48 61 3 42 29 10 3 50 74 78 3 42 85 34 4 88 64 57 10 4 45 59 39 79 4 86 49 7 61 3 35 70 76 3 45 4 42 3 46 48 22 4 81 80 47 54 3 69 10 56 3 67 2 52 3 42 55 12 3 38 49 32 3 57 20 18 3 21 2...
result:
ok correct (100 test cases)
Test #11:
score: 0
Accepted
time: 1434ms
memory: 40572kb
input:
1 100000 1000000 70376 68374 69858 95507 48028 59467 27775 34161 858 86059 31468 25048 21313 82671 10952 18093 89665 50624 52742 11128 33566 41507 25913 22268 72131 67543 31387 42274 37347 75248 88261 56182 98982 47735 90574 62875 51228 53905 25218 4567 78201 22017 59613 68982 37239 43727 67620 9064...
output:
145 34049 95904 37070 8830 88780 40389 89704 31395 5518 13966 92629 25295 79441 66804 29604 68614 8504 94958 575 52234 70034 52718 16263 76863 42235 14660 20487 81933 68992 95038 15750 20107 84175 36130 40680 448 44426 11712 27498 65291 74613 88967 75856 40562 23713 550 40831 43199 5877 61524 94083 ...
result:
ok correct (1 test case)
Test #12:
score: -100
Time Limit Exceeded
input:
1 200000 200000 89381 101645 141954 180063 180085 158544 12185 82120 161570 175869 36911 151360 49966 148400 135100 143084 145185 33970 82150 111213 93727 145916 42620 157053 26848 66273 178649 76101 5033 162413 173225 34259 30781 78979 9908 187256 87177 127185 7086 26040 178611 119947 198142 154140...