QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#135028#6634. Central SubsetRd_rainydays#AC ✓350ms32020kbC++201.5kb2023-08-05 10:45:522023-08-05 10:45:56

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-08-05 10:45:56]
  • 评测
  • 测评结果:AC
  • 用时:350ms
  • 内存:32020kb
  • [2023-08-05 10:45:52]
  • 提交

answer

#include <bits/stdc++.h>

const int N = 2e5 + 5;
std::vector<int> g[N];
int n, m, dep[N], fa[N];
bool vis[N];

struct cmp {
  bool operator () (const int &a, const int &b) const {
    return dep[a] != dep[b] ? dep[a] > dep[b] : a > b;
  }
};

void solve() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) g[i].clear();

  for (int u, v, i = 1; i <= m; i++) {
    scanf("%d%d", &u, &v);
    g[u].push_back(v);
    g[v].push_back(u);
  }

  memset(vis + 1, 0, n * sizeof(bool));
  auto dfs = [&](int x, int f, auto &dfs) -> void {
    if (vis[x]) return;
    vis[x] = 1, dep[x] = dep[f] + 1, fa[x] = f;
    for (auto y : g[x]) dfs(y, x, dfs);
  };
  dfs(1, 0, dfs);
  int t = ceil(sqrt(n));
  std::vector<int> S;
  
  std::multiset<int, cmp> cur;
  for (int i = 1; i <= n; i++) cur.insert(i);

  while (cur.size() > 1u) {
    int x = *cur.begin();

    for (int i = 0; i < t; i++)
      if (x != 1) x = fa[x]; else break;
    auto del = [&](int t, auto &del) {
      if (!cur.count(t)) return;
      cur.erase(t);
      for (auto y : g[t])
        if (fa[y] == t) del(y, del);
    };
    del(x, del);

    S.push_back(x);
    cur.insert(x);
  }

  assert(S.size() <= t);
  printf("%u\n", S.size());
  for (auto x : S) printf("%d ", x);
  puts("");
}
/*
9 8
1 2
2 3
3 4
3 5
3 6
3 7
3 8
3 9

1
10 11
1 2
2 3
2 4
4 5
5 6
5 7
6 7
7 8
8 9
8 10
9 10
*/

signed main() {
  int t;
  scanf("%d", &t);
  while (t--) solve();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 8824kb

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
2 1 
1
1 

result:

ok correct (2 test cases)

Test #2:

score: 0
Accepted
time: 26ms
memory: 8412kb

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:

4
11 7 3 1 
1
1 
2
2 1 
1
1 
1
1 
3
6 3 1 
1
1 
2
4 1 
3
10 3 1 
1
1 
4
15 10 5 1 
2
3 1 
2
2 1 
2
5 1 
1
1 
4
11 7 3 1 
1
1 
1
1 
2
2 1 
1
1 
2
2 1 
2
3 1 
2
4 1 
2
5 1 
1
1 
4
11 7 3 1 
1
1 
2
5 1 
1
1 
1
1 
4
16 11 6 1 
2
2 1 
2
4 1 
3
7 4 1 
1
1 
2
3 1 
2
2 1 
2
3 1 
3
7 6 1 
1
1 
3
8 4 1 
1
1 
...

result:

ok correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 66ms
memory: 8612kb

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:

45
1955 1910 1865 1820 1775 1730 1685 1640 1595 1550 1505 1460 1415 1370 1325 1280 1235 1190 1145 1100 1055 1010 965 920 875 830 785 740 695 650 605 560 515 470 425 380 335 290 245 200 155 110 65 20 1 
1
1 
23
956 911 866 821 776 731 686 641 596 551 506 461 416 371 326 281 236 191 146 101 56 11 1 
6...

result:

ok correct (100 test cases)

Test #4:

score: 0
Accepted
time: 49ms
memory: 11208kb

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:

122
14791 14668 14545 14422 14299 14176 14053 13930 13807 13684 13561 13438 13315 13192 13069 12946 12823 12700 12577 12454 12331 12208 12085 11962 11839 11716 11593 11470 11347 11224 11101 10978 10855 10732 10609 10486 10363 10240 10117 9994 9871 9748 9625 9502 9379 9256 9133 9010 8887 8764 8641 85...

result:

ok correct (10 test cases)

Test #5:

score: 0
Accepted
time: 92ms
memory: 10360kb

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:

4
6126 3269 1143 1 
5
10809 8283 178 176 1 
5
11257 8040 3276 471 1 
5
10584 9863 3873 3415 1 
6
15169 14623 8672 8665 1487 1 
6
15046 6159 4075 2577 207 1 
7
15985 8593 6581 1059 972 256 1 
6
7843 6192 5415 2418 266 1 
6
14312 1588 1088 1025 27 1 
5
8901 8799 7775 2515 1 

result:

ok correct (10 test cases)

Test #6:

score: 0
Accepted
time: 116ms
memory: 32016kb

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:

447
199552 199104 198656 198208 197760 197312 196864 196416 195968 195520 195072 194624 194176 193728 193280 192832 192384 191936 191488 191040 190592 190144 189696 189248 188800 188352 187904 187456 187008 186560 186112 185664 185216 184768 184320 183872 183424 182976 182528 182080 181632 181184 18...

result:

ok correct (1 test case)

Test #7:

score: 0
Accepted
time: 134ms
memory: 28888kb

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
99553 99105 98657 98209 97761 97313 96865 96417 95969 95521 95073 94625 94177 93729 93281 92833 92385 91937 91489 91041 90593 90145 89697 89249 88801 88353 87905 87457 87009 86561 86113 85665 85217 84769 84321 83873 83425 82977 82529 82081 81633 81185 80737 80289 79841 79393 78945 78497 78049 77...

result:

ok correct (1 test case)

Test #8:

score: 0
Accepted
time: 173ms
memory: 25868kb

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:

6
149019 118805 107919 81894 4044 1 

result:

ok correct (1 test case)

Test #9:

score: 0
Accepted
time: 17ms
memory: 9484kb

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
8 1 
5
4 23 57 16 1 
4
7 11 16 1 
7
72 12 32 28 36 82 1 
6
33 47 58 20 16 1 
3
4 9 1 
5
36 31 41 21 1 
5
29 50 52 45 1 
7
69 14 3 21 38 42 1 
7
33 73 72 70 78 31 1 
4
18 16 20 1 
4
13 56 8 1 
2
2 1 
4
44 45 2 1 
4
21 4 7 1 
3
12 16 1 
3
8 12 1 
1
1 
6
21 46 37 38 41 1 
6
43 55 16 24 46 1 
5
22 18 ...

result:

ok correct (1000 test cases)

Test #10:

score: 0
Accepted
time: 2ms
memory: 8508kb

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:

5
73 48 13 52 1 
6
20 81 15 62 24 1 
5
24 2 27 49 1 
6
9 27 37 23 39 1 
6
57 61 54 23 49 1 
3
32 3 1 
4
28 16 50 1 
5
35 43 9 33 1 
6
17 27 50 20 58 1 
4
42 10 29 1 
4
50 12 23 1 
6
42 48 2 14 85 1 
7
88 4 8 67 74 31 1 
7
45 22 68 13 24 32 1 
7
86 76 36 39 44 57 1 
7
35 59 76 45 19 64 1 
5
45 14 33 ...

result:

ok correct (100 test cases)

Test #11:

score: 0
Accepted
time: 350ms
memory: 31152kb

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
34049 57614 21673 77170 44943 26416 68916 66520 50395 42458 93072 88803 89398 95658 31773 83300 49092 6219 94555 94210 69304 58785 86210 53919 40190 26157 38742 25060 96445 26432 80498 31475 63923 21994 46551 82471 52423 94029 42720 53946 77440 68667 50987 59175 39185 38782 53504 12383 67524 661...

result:

ok correct (1 test case)

Test #12:

score: 0
Accepted
time: 224ms
memory: 32020kb

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:

447
102716 52811 57622 40058 150766 88884 174453 107788 55108 13749 16046 17947 44022 86678 30095 20145 55982 49527 109863 29755 57307 94700 162200 124044 197883 63226 50600 10064 51630 18861 133116 157914 64574 144412 194757 62037 48202 48069 22556 113082 10859 45300 59565 133931 172062 88999 4702 ...

result:

ok correct (1 test case)

Test #13:

score: 0
Accepted
time: 198ms
memory: 25772kb

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
171689 198734 123009 166219 189537 185622 100072 149905 128572 193842 122073 159953 186516 176986 191530 136472 183233 190183 191576 160824 188604 194460 124730 134556 137621 162382 183962 117053 164701 115691 185421 193395 198350 167488 85512 163716 175096 185086 193783 150325 190697 199024 181...

result:

ok correct (1 test case)

Test #14:

score: 0
Accepted
time: 76ms
memory: 8708kb

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:

19
865 823 747 775 654 624 582 536 511 383 334 291 229 211 137 148 65 33 1 
17
769 812 693 638 578 690 597 552 430 412 396 321 283 173 102 13 1 
22
850 858 750 752 648 677 620 578 515 487 411 374 349 333 276 199 184 132 102 43 2 1 
21
888 819 774 729 712 674 619 542 546 445 394 422 329 216 246 203 1...

result:

ok correct (200 test cases)

Test #15:

score: 0
Accepted
time: 56ms
memory: 22476kb

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:

2
2 1 

result:

ok correct (1 test case)

Test #16:

score: 0
Accepted
time: 46ms
memory: 13184kb

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:

32
276 336 679 51 515 628 137 107 231 924 248 440 180 650 535 865 916 358 718 74 315 146 831 811 662 372 200 785 49 875 900 1 

result:

ok correct (1 test case)

Test #17:

score: 0
Accepted
time: 56ms
memory: 9048kb

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
7 39 1 
3
29 37 1 
2
44 1 
3
36 43 1 
3
37 16 1 
3
46 43 1 
2
28 1 
2
34 1 
3
39 21 1 
3
11 13 1 
3
43 24 1 
3
7 19 1 
3
8 28 1 
3
6 14 1 
3
30 48 1 
2
5 1 
3
43 37 1 
2
4 1 
2
8 1 
3
9 30 1 
3
8 23 1 
3
35 21 1 
3
6 19 1 
3
19 4 1 
3
17 35 1 
3
2 3 1 
2
26 1 
3
39 47 1 
2
33 1 
3
25 2 1 
3
6 7 1 ...

result:

ok correct (4081 test cases)