QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#135050 | #6634. Central Subset | PanC_ake# | TL | 993ms | 41448kb | C++20 | 2.3kb | 2023-08-05 10:52:07 | 2023-08-05 10:52:09 |
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 + 10);
if(cnt == n) break;
ans.push_back(rt);
fa[rt] = 0;
d = 0;
bfs(rt);
rt = 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();
}
详细
Test #1:
score: 100
Accepted
time: 2ms
memory: 15212kb
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 4 1 1 1
result:
ok correct (2 test cases)
Test #2:
score: 0
Accepted
time: 8ms
memory: 16092kb
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 6 15 1 1 1 1 2 1 1 1 1 2 7 1 1 1 2 8 9 3 13 1 11 1 14 4 14 1 20 7 2 2 8 2 6 1 1 10 1 1 3 14 1 9 2 5 6 1 2 2 7 5 1 19 1 3 1 4 1 4 2 12 18 1 6 3 3 15 8 1 3 2 14 10 1 1 1 6 4 8 21 1 15 2 12 13 2 3 14 3 15 5 13 1 6 1 4 3 1 6 7 2 12 8 3 4 21 20 1 7 2 5 12 2 6 5 ...
result:
ok correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 27ms
memory: 16688kb
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:
43 1636 1 2000 47 1954 93 1908 139 1862 185 1816 231 1770 277 1724 323 1590 369 1544 415 1498 461 1452 507 1406 553 1360 599 1314 645 1268 691 1222 737 1176 783 1130 829 1084 875 1038 921 992 1 1213 23 1292 1001 1002 1956 1046 1912 1090 1868 1134 1824 1178 1780 1222 1736 1336 1692 1380 1648 1424 1...
result:
ok correct (100 test cases)
Test #4:
score: 0
Accepted
time: 122ms
memory: 19108kb
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:
121 6092 14914 1 14790 125 14666 249 14542 373 14418 497 14294 621 14170 745 14046 869 13922 993 13798 1117 13674 1241 13550 1365 13426 1489 13302 1613 13178 1737 13054 1861 12930 1985 12806 2109 12682 2233 12558 2357 12434 2481 12310 2605 12186 2729 12062 2853 11938 2977 11814 3101 11690 3225 11566...
result:
ok correct (10 test cases)
Test #5:
score: 0
Accepted
time: 47ms
memory: 16964kb
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:
9 5636 7289 20000 3654 19977 2557 19941 19093 18322 12 7213 20000 11158 19870 10826 19460 9522 19318 5867 18840 4228 11555 8 3292 20000 18476 19817 10920 19502 16488 15331 12 591 20000 19966 19785 17111 16429 14901 11966 10313 11541 3680 11460 11 12595 20000 19962 17518 7221 15491 6078 12963 851...
result:
ok correct (10 test cases)
Test #6:
score: 0
Accepted
time: 527ms
memory: 40076kb
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:
446 87725 200000 1 199551 450 199102 899 198653 1348 198204 1797 197755 2246 197306 2695 196857 3144 196408 3593 195959 4042 195510 4491 195061 4940 194612 5389 194163 5838 193714 6287 193265 6736 192816 7185 192367 7634 191918 8083 191469 8532 191020 8981 190571 9430 190122 9879 189673 10328 189224...
result:
ok correct (1 test case)
Test #7:
score: 0
Accepted
time: 404ms
memory: 37676kb
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:
224 87725 1 100001 100449 199553 100896 199106 101343 198659 101790 198212 102237 197765 102684 197318 103131 196871 103578 196424 104025 195977 104472 195530 104919 195083 105366 194636 105813 194189 106260 193742 106707 193295 107154 192848 107601 192401 108048 191954 108495 191507 108942 191060 1...
result:
ok correct (1 test case)
Test #8:
score: 0
Accepted
time: 83ms
memory: 29696kb
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:
13 109486 200000 63486 199002 78900 178642 176521 79690 172036 80806 132573 65085 94488
result:
ok correct (1 test case)
Test #9:
score: 0
Accepted
time: 7ms
memory: 15252kb
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:
3 4 7 9 6 12 34 9 39 70 54 3 15 20 23 6 72 71 79 1 80 39 6 25 49 40 19 58 46 3 3 14 5 5 18 15 7 24 22 5 33 50 48 38 6 7 59 18 26 69 61 55 82 7 51 66 76 55 64 38 22 4 11 4 12 9 6 18 1 7 23 31 15 2 4 1 5 10 15 36 24 17 6 42 48 20 2 9 31 3 18 19 5 3 16 5 3 1 4 6 32 23 59 26 14 17 6 4...
result:
ok correct (1000 test cases)
Test #10:
score: 0
Accepted
time: 5ms
memory: 15024kb
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:
6 66 16 12 60 40 31 8 33 46 19 26 85 31 12 76 6 39 10 31 48 29 20 6 34 55 8 47 64 38 7 69 68 29 36 11 62 53 4 48 8 20 7 4 44 8 25 37 5 32 20 40 11 44 6 16 17 41 72 44 40 5 32 17 50 38 30 6 55 46 25 35 18 73 8 18 57 93 84 61 27 86 33 8 12 68 3 47 50 22 15 39 8 12 66 93 35 16 48 91 72 7 ...
result:
ok correct (100 test cases)
Test #11:
score: 0
Accepted
time: 993ms
memory: 41448kb
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:
290 9486 98307 78452 54438 63144 79905 54060 33357 49346 68793 39773 53189 3366 16545 49917 71110 21932 18108 39452 21626 83695 6885 7999 86549 25918 99656 30579 88653 46977 32652 83343 50934 24451 95652 25401 61959 15252 11006 87192 41612 46268 93083 36137 57307 74657 33194 37841 36478 38880 37731 ...
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...