QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#135070 | #6634. Central Subset | PanC_ake# | AC ✓ | 1553ms | 48288kb | C++20 | 2.3kb | 2023-08-05 11:06:57 | 2023-08-05 11:06:59 |
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], vis2[maxn], dep[maxn], fa[maxn];
vector<int> e[maxn], g[maxn];
vector<int> ans;
char *p1,*p2,buf[100000];
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
int read() {
int x=0,f=1;
char ch=nc();
while(ch<48||ch>57)
{
if(ch=='-')
f=-1;
ch=nc();
}
while(ch>=48&&ch<=57)
x=x*10+ch-48,ch=nc();
return x*f;
}
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 bfs(int u) {
queue<int> q;
q.push(u);
dep[u] = 1;
for(int i = 1; i <= n; i++) vis2[i] = 0;
while(!q.empty()) {
int u = q.front();
q.pop();
vis2[u] = 1;
if(!vis[u]) {
if(dep[u] > d) {
dv = u;
d = dep[u];
}
}
if(dep[u] - 1 <= N && !vis[u]) {
vis[u] = 1;
cnt++;
}
for(int v: g[u]) {
if(vis2[v]) continue;
fa[v] = u;
dep[v] = dep[u] + 1;
q.push(v);
}
}
}
int climb(int u) {
for(int i = 1; i <= N; i++) u = fa[u];
return u;
}
mt19937 rd(time(0));
void solve() {
ans.clear();
cnt = 0;
n = read();
m = read();
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;
u = read();
v = read();
e[u].push_back(v);
e[v].push_back(u);
}
int rt = rd() % n + 1;
dfs0(rt);
while(true) {
assert(ans.size() <= N);
if(cnt == n) break;
ans.push_back(rt);
fa[rt] = 0;
d = 0;
bfs(rt);
rt = climb(dv);
}
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;
t = read();
while(t--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 3ms
memory: 16684kb
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:
2 1 2 1 4
result:
ok correct (2 test cases)
Test #2:
score: 0
Accepted
time: 9ms
memory: 16488kb
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:
3 15 5 6 1 4 1 8 1 2 1 2 2 6 4 1 2 2 9 4 2 2 10 1 6 2 17 6 2 1 3 2 10 5 2 9 5 1 5 3 1 11 10 2 7 4 1 2 2 5 2 1 8 1 3 2 6 4 2 13 5 2 4 5 1 6 2 14 5 1 3 2 10 5 1 3 1 6 3 10 16 6 2 7 5 2 11 4 3 11 7 6 1 4 1 3 2 7 5 2 1 3 2 17 7 1 7 2 8 5 1 2 2 9 3 1 3 1 7 2 8...
result:
ok correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 20ms
memory: 16088kb
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:
23 885 1955 46 1864 137 1773 228 1682 319 1591 410 1500 501 1409 592 1318 683 1227 774 1136 865 1045 976 1 726 12 1918 46 956 135 830 224 741 313 652 402 563 491 5 340 1170 1047 86 107 1 1864 23 128 1955 46 1864 219 1773 310 1682 401 1591 492 1500 583 1409 674 1318 765 1227 856 1136 947 1045 10...
result:
ok correct (100 test cases)
Test #4:
score: 0
Accepted
time: 71ms
memory: 18156kb
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:
62 13999 124 14791 371 14544 618 14297 865 14050 1112 13752 1359 13505 1606 13258 1853 13011 2100 12764 2347 12517 2594 12270 2841 12023 3088 11776 3335 11529 3582 11282 3829 11035 4076 10788 4323 10541 4570 10294 4817 10047 5064 9800 5311 9553 5558 9306 5805 9059 6052 8812 6299 8565 6546 8318 6793 ...
result:
ok correct (10 test cases)
Test #5:
score: 0
Accepted
time: 25ms
memory: 17800kb
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:
3 885 6126 1143 4 12726 176 10809 5321 3 11918 3724 11257 4 340 10584 9863 6937 5 13864 15169 14623 6490 1288 4 128 15046 4075 6159 5 296 15985 972 6581 547 4 17329 5415 6192 2004 5 8338 1025 14312 27 1588 4 8790 8901 8799 3663
result:
ok correct (10 test cases)
Test #6:
score: 0
Accepted
time: 287ms
memory: 40808kb
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:
224 120885 449 199552 1346 198655 2243 197758 3140 196861 4037 195964 4934 195067 5831 194170 6728 193273 7625 192376 8522 191479 9419 190582 10316 189685 11213 188788 12110 187891 13007 186994 13904 186097 14801 185200 15698 184303 16595 183406 17492 182509 18389 181612 19286 180715 20183 179818 21...
result:
ok correct (1 test case)
Test #7:
score: 0
Accepted
time: 213ms
memory: 37656kb
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 87256 449 99553 1344 98658 2239 97763 3134 96868 4029 95973 4924 95078 5819 94183 6714 93288 7609 92393 8504 91498 9399 90603 10294 89708 11189 88813 12084 87918 12979 86361 13874 85466 14769 84571 15664 83676 16559 82781 17454 81886 18349 80991 19244 80096 20139 79201 21034 78306 21929 77411 22...
result:
ok correct (1 test case)
Test #8:
score: 0
Accepted
time: 59ms
memory: 29688kb
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:
4 87256 149019 55837 118805
result:
ok correct (1 test case)
Test #9:
score: 0
Accepted
time: 9ms
memory: 15396kb
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:
2 7 1 4 69 26 53 23 2 3 23 4 86 68 44 61 3 18 15 53 2 4 1 3 25 39 41 4 23 8 18 32 4 64 3 75 4 4 18 56 36 66 3 9 13 7 4 23 13 65 29 2 1 2 3 18 3 20 3 47 38 20 2 3 12 2 8 14 1 1 3 1 21 37 4 35 40 52 18 3 21 7 35 3 19 35 15 2 7 1 5 19 30 22 89 40 4 39 67 19 27 3 40 42 52 3 16 ...
result:
ok correct (1000 test cases)
Test #10:
score: 0
Accepted
time: 5ms
memory: 16536kb
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:
4 68 72 54 44 4 69 41 73 20 4 25 33 17 21 4 53 23 25 64 4 2 18 29 52 3 19 30 40 3 41 53 9 4 23 25 15 21 4 82 25 60 24 3 28 42 25 3 77 72 75 4 23 75 6 74 4 73 46 85 36 4 85 43 71 72 4 71 22 44 48 4 74 66 50 22 3 14 46 51 3 17 16 1 4 68 88 65 27 3 42 50 58 4 80 22 31 68 3 14 60 9 ...
result:
ok correct (100 test cases)
Test #11:
score: 0
Accepted
time: 572ms
memory: 41312kb
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:
146 87256 38138 11322 47055 82517 53555 28106 34416 13978 65628 31756 60356 79223 13750 13734 48879 1 19515 6675 74151 3686 52954 80531 18181 98860 4674 56719 51044 34302 66021 40584 34149 53151 56364 88402 66823 49498 8963 9455 71613 49096 36364 87200 86121 15822 8047 72634 77535 26187 61121 18551 ...
result:
ok correct (1 test case)
Test #12:
score: 0
Accepted
time: 1354ms
memory: 48288kb
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...
output:
224 122366 101653 23323 78950 158628 15409 136239 162062 127476 156384 189550 55193 153203 75170 31529 163510 140526 79065 20830 48357 81373 188434 50749 122448 78416 61107 182756 73131 23476 105409 98085 7434 60247 82481 198262 148196 104535 2934 158346 23922 57618 102459 28448 165344 49329 131065 ...
result:
ok correct (1 test case)
Test #13:
score: 0
Accepted
time: 1553ms
memory: 29500kb
input:
1 199809 199808 197381 136472 136472 160228 160228 128766 128766 197225 197225 160133 160133 105707 105707 66465 66465 199512 199512 185463 185463 176514 176514 175293 175293 178768 178768 158873 158873 199518 199518 161400 161400 172476 172476 188761 188761 197795 197795 152286 152286 177332 177332...
output:
446 128714 136472 189537 129710 194132 176986 134556 137621 191029 120292 52474 124343 130888 115691 193842 160824 190183 191704 160083 132699 152049 123009 100072 195640 191131 176835 175061 181807 143043 193090 179516 191153 193821 169223 186567 198350 119787 194460 178886 193783 192687 181673 178...
result:
ok correct (1 test case)
Test #14:
score: 0
Accepted
time: 31ms
memory: 16032kb
input:
200 961 1663 2 1 3 1 3 20 4 1 4 7 5 1 5 41 5 60 6 1 7 1 7 49 8 1 9 1 10 1 11 1 12 1 12 32 13 1 13 59 14 1 14 3 15 1 15 12 15 52 16 1 16 12 16 63 17 1 17 10 18 1 18 36 19 1 19 26 19 29 20 1 20 60 20 63 21 1 22 1 23 1 23 3 23 27 23 39 24 1 25 1 26 1 26 58 26 60 27 1 27 22 27 36 28 1 29 1 30 1 31 1 31 ...
output:
10 664 879 96 760 160 689 253 589 324 468 10 626 849 94 772 230 655 260 529 345 489 12 92 885 151 795 183 730 219 605 352 565 443 456 11 244 850 34 812 162 615 269 606 383 525 440 9 224 927 138 821 183 609 351 570 520 10 684 921 109 780 191 632 229 609 417 468 11 100 889 50 759 187 701 300 599...
result:
ok correct (200 test cases)
Test #15:
score: 0
Accepted
time: 19ms
memory: 26740kb
input:
1 160000 159999 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 5...
output:
3 150345 2 1
result:
ok correct (1 test case)
Test #16:
score: 0
Accepted
time: 15ms
memory: 20900kb
input:
1 1000 499500 605 964 559 738 492 518 943 284 96 23 214 486 487 262 347 436 394 422 270 113 984 149 134 203 881 328 316 643 610 922 802 67 903 194 600 584 629 62 692 370 420 442 600 563 438 452 556 785 112 809 555 241 937 635 178 746 67 900 777 247 490 842 971 12 315 60 703 467 201 13 872 503 24 201...
output:
16 345 377 863 353 842 316 330 379 136 664 67 620 984 983 288 675
result:
ok correct (1 test case)
Test #17:
score: 0
Accepted
time: 11ms
memory: 15852kb
input:
4081 49 48 39 7 7 45 45 25 25 31 31 26 26 4 4 11 4 19 4 37 4 8 4 16 4 22 4 33 11 14 39 6 6 12 12 46 46 49 49 48 48 29 29 27 39 41 41 15 15 34 34 24 39 3 3 13 13 20 20 47 39 9 9 36 36 5 5 43 39 40 40 21 21 2 2 38 39 35 35 42 42 23 23 28 39 1 1 32 32 10 10 17 39 30 30 18 18 44 49 48 37 29 29 33 33 19 ...
output:
3 9 7 39 3 27 29 37 3 5 44 9 3 34 36 43 3 29 37 16 3 31 46 43 3 35 28 30 3 37 43 34 2 5 39 3 28 11 27 3 4 11 43 2 48 19 3 7 8 28 2 6 14 3 25 30 44 2 1 5 3 2 43 37 2 28 41 3 32 44 8 3 42 9 30 2 40 23 2 11 21 3 5 6 19 3 10 19 4 3 2 17 35 3 31 2 3 2 26 18 2 26 39 2 19 33 3 ...
result:
ok correct (4081 test cases)