QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#113880#6634. Central SubsetITMO_pengzoo#AC ✓247ms28744kbC++203.8kb2023-06-19 22:07:012023-06-19 22:07:02

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-19 22:07:02]
  • 评测
  • 测评结果:AC
  • 用时:247ms
  • 内存:28744kb
  • [2023-06-19 22:07:01]
  • 提交

answer

// #pragma comment(linker, "/stack:200000000")
// #pragma GCC optimize("Ofast,no-stack-protector")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
// #pragma GCC optimize("unroll-loops")

#include <stdio.h>
#include <bits/stdc++.h>

#ifdef PERVEEVM_LOCAL
    #define debug(x) std::cerr << (#x) << ":\t" << (x) << std::endl
#else
    #define debug(x) 238
#endif

#define fastIO std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0)
#define NAME "File"

using ll = long long;
using ld = long double;

#ifdef PERVEEVM_LOCAL
    std::mt19937 rnd(238);
#else
    std::mt19937 rnd(std::chrono::high_resolution_clock::now().time_since_epoch().count());
#endif

template<typename T1, typename T2>
std::ostream& operator<<(std::ostream& out, const std::pair<T1, T2>& p) {
    out << "(" << p.first << ", " << p.second << ")";
    return out;
}

template<size_t index, typename T>
std::ostream& print_tuple(std::ostream& out, const T& t) {
    if constexpr (index == std::tuple_size<T>::value) {
        out << ")";
        return out;
    } else {
        if (index > 0) {
            out << ", ";
        } else {
            out << "(";
        }
        out << std::get<index>(t);
        return print_tuple<index + 1, T>(out, t);
    }
}

template<typename ...T>
std::ostream& operator<<(std::ostream& out, const std::tuple<T...>& t) {
    return print_tuple<0, std::tuple<T...>>(out, t);
}

template<typename Container, typename = decltype(std::begin(std::declval<Container>()))>
typename std::enable_if<!std::is_same<Container, std::string>::value, std::ostream&>::type
operator<<(std::ostream& out, const Container& container) {
    out << "{";
    for (auto it = container.begin(); it != container.end(); ++it) {
        if (it != container.begin()) {
            out << ", ";
        }
        out << *it;
    }
    out << "}";
    return out;
}

template<typename T>
bool smin(T& a, const T& b) {
    if (b < a) {
        a = b;
        return true;
    }
    return false;
}

template<typename T>
bool smax(T& a, const T& b) {
    if (a < b) {
        a = b;
        return true;
    }
    return false;
}

const double PI = atan2(0.0, -1.0);
const int INF = 0x3f3f3f3f;
const ll LINF = (ll)2e18;
const int N = 200100;

int sq;
std::vector<int> g[N];
bool used[N];
std::vector<int> ans;

int dfs(int v) {
	used[v] = true;

	int cur = INF;
	for (auto to : g[v]) {
		if (!used[to]) {
			smin(cur, dfs(to));
		}
	}

	if (cur == INF) {
		return sq - 1;
	}
	if (cur == 0) {
		ans.push_back(v);
		return sq - 1;
	}
	return cur - 1;
}

void solve() {
	int n, m;
	scanf("%d%d", &n, &m);

	for (int i = 0; i < n; ++i) {
		g[i].clear();
		used[i] = false;
	}

	sq = 0;
	while (sq * sq < n) {
		++sq;
	}

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

	ans.clear();
	dfs(0);

	ans.push_back(0);
	std::sort(ans.begin(), ans.end());
	ans.resize(std::unique(ans.begin(), ans.end()) - ans.begin());
	assert((int)ans.size() <= sq);

	printf("%d\n", (int)ans.size());
	for (auto i : ans) {
		printf("%d ", i + 1);
	}
	printf("\n");
}

void run() {
	int t;
	scanf("%d", &t);

	while (t--) {
		solve();
	}    
}

int main(void) {
    // freopen(NAME".in", "r", stdin);
    // freopen(NAME".out", "w", stdout);

    #ifdef PERVEEVM_LOCAL
        auto start = std::chrono::high_resolution_clock::now();
    #endif

    run();

    #ifdef PERVEEVM_LOCAL
        auto end = std::chrono::high_resolution_clock::now();
        std::cerr << "Execution time: "
                  << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
                  << " ms" << std::endl;
    #endif

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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
1 

result:

ok correct (2 test cases)

Test #2:

score: 0
Accepted
time: 10ms
memory: 8388kb

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
1 3 7 11 
1
1 
2
1 2 
1
1 
1
1 
3
1 3 6 
1
1 
2
1 4 
3
1 3 10 
1
1 
4
1 5 10 15 
2
1 3 
2
1 2 
2
1 5 
1
1 
4
1 3 7 11 
1
1 
1
1 
2
1 2 
1
1 
2
1 2 
2
1 3 
2
1 4 
2
1 5 
1
1 
4
1 3 7 11 
1
1 
2
1 5 
1
1 
1
1 
4
1 6 11 16 
2
1 2 
2
1 4 
3
1 4 7 
1
1 
2
1 3 
2
1 2 
2
1 3 
3
1 6 7 
1
1 
3
1 4 8 
1
1 
...

result:

ok correct (10000 test cases)

Test #3:

score: 0
Accepted
time: 29ms
memory: 8544kb

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

result:

ok correct (100 test cases)

Test #4:

score: 0
Accepted
time: 18ms
memory: 10192kb

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
1 31 154 277 400 523 646 769 892 1015 1138 1261 1384 1507 1630 1753 1876 1999 2122 2245 2368 2491 2614 2737 2860 2983 3106 3229 3352 3475 3598 3721 3844 3967 4090 4213 4336 4459 4582 4705 4828 4951 5074 5197 5320 5443 5566 5689 5812 5935 6058 6181 6304 6427 6550 6673 6796 6919 7042 7165 7288 741...

result:

ok correct (10 test cases)

Test #5:

score: 0
Accepted
time: 42ms
memory: 9240kb

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

result:

ok correct (10 test cases)

Test #6:

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

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
1 192 640 1088 1536 1984 2432 2880 3328 3776 4224 4672 5120 5568 6016 6464 6912 7360 7808 8256 8704 9152 9600 10048 10496 10944 11392 11840 12288 12736 13184 13632 14080 14528 14976 15424 15872 16320 16768 17216 17664 18112 18560 19008 19456 19904 20352 20800 21248 21696 22144 22592 23040 23488 ...

result:

ok correct (1 test case)

Test #7:

score: 0
Accepted
time: 41ms
memory: 21000kb

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
1 97 545 993 1441 1889 2337 2785 3233 3681 4129 4577 5025 5473 5921 6369 6817 7265 7713 8161 8609 9057 9505 9953 10401 10849 11297 11745 12193 12641 13089 13537 13985 14433 14881 15329 15777 16225 16673 17121 17569 18017 18465 18913 19361 19809 20257 20705 21153 21601 22049 22497 22945 23393 238...

result:

ok correct (1 test case)

Test #8:

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

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
1 4044 81894 107919 118805 149019 

result:

ok correct (1 test case)

Test #9:

score: 0
Accepted
time: 6ms
memory: 8344kb

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

result:

ok correct (1000 test cases)

Test #10:

score: 0
Accepted
time: 0ms
memory: 8324kb

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

result:

ok correct (100 test cases)

Test #11:

score: 0
Accepted
time: 247ms
memory: 28744kb

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
1 194 365 708 1074 1561 1670 1676 2159 2171 2488 3963 4258 5418 5635 5682 5833 6219 6592 8153 8210 8483 8749 8971 9402 9549 9614 10251 12078 12114 12383 12565 12755 12936 13099 13812 13835 14064 14212 14255 14353 14591 15202 15475 15716 16295 16712 16781 17202 17401 17813 17891 17902 17981 18484...

result:

ok correct (1 test case)

Test #12:

score: 0
Accepted
time: 62ms
memory: 27496kb

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
1 111 198 792 1038 2033 2967 3129 4278 4702 5036 5622 5747 6095 6332 7882 7961 8777 8859 9114 9209 9554 10064 10226 10252 10449 10859 13116 13543 13565 13749 13935 14477 14519 14679 14817 14846 15130 15383 15748 15920 16046 16905 16980 17114 17180 17645 17947 18018 18861 19079 19095 19238 20145 ...

result:

ok correct (1 test case)

Test #13:

score: 0
Accepted
time: 42ms
memory: 14800kb

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
1 792 1169 1389 1434 1473 1721 2964 3448 4328 4438 5015 6076 6436 7028 8723 8775 8843 8903 9107 10348 10983 12048 12288 12883 13326 13980 14927 14982 15316 15404 15618 15767 15852 16599 16947 17209 17685 17769 18582 18631 18999 19178 20576 21016 21189 21224 22050 22246 22680 23064 23361 23826 24...

result:

ok correct (1 test case)

Test #14:

score: 0
Accepted
time: 32ms
memory: 8596kb

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

result:

ok correct (200 test cases)

Test #15:

score: 0
Accepted
time: 24ms
memory: 13496kb

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

result:

ok correct (1 test case)

Test #16:

score: 0
Accepted
time: 53ms
memory: 12700kb

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
1 49 51 74 107 137 146 180 200 231 248 276 315 336 358 372 440 515 535 628 650 662 679 718 785 811 831 865 875 900 916 924 

result:

ok correct (1 test case)

Test #17:

score: 0
Accepted
time: 13ms
memory: 8328kb

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

result:

ok correct (4081 test cases)