QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#139609#6634. Central SubsetFzArKTL 71ms24236kbC++172.3kb2023-08-14 03:40:022023-08-14 03:40:03

Judging History

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

  • [2023-08-14 03:40:03]
  • 评测
  • 测评结果:TL
  • 用时:71ms
  • 内存:24236kb
  • [2023-08-14 03:40:02]
  • 提交

answer

#include<bits/stdc++.h>
#include <stdio.h>
#include <algorithm>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define sc(x) scanf("%d", &x)
#define scl(x) scanf("%lld", &x)
#define clr(x) vector<int>().swap(x);
#define all(x) x.begin(), x.end()
#define sz(x) x.size()
#define endl '\n'
#define pb push_back
#define pf push_front
#define mp make_pair
#define popb pop_back
#define popf pop_front
#define ll long long
#define ld long double
#define ull unsigned long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define random mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define FAST ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define F first
#define S second
const ll INF=1e18;
const ll MN=-2e9;
const ll MX=2e5+9;
const ll MXX=1e9;
const ll SQ=4e2;
const ll MOD=998244353;
const ll PP=1e6+3;
const ld PI=3.141592653589793;
const ld eps=1e-11;
typedef tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update>
    ordered_set;

int n, m, q, p[MX], d[MX], vis[MX];
vector<int> I, ans, adj[MX];

void init() {
    q = 0;
    I.clear();
    ans.clear();
    for (int i=1; i<=n; i++) {
        vis[i] = 0;
        adj[i].clear();
    }
}

void go(int u, int par) {
    if (vis[u]) return;
    vis[u] = 1;
    p[u] = par;
    d[u] = d[par] + 1;
    for (auto v:adj[u]) go(v, u);
    vis[u] = 0;
}

void gg(int u) {
    if (vis[u]) return;
    vis[u] = 1;
    for (auto v:adj[u]) if (v != p[u]) {
        gg(v);
    }
}

void solve() {
    cin >> n >> m;
    while (m--) {
        int u, v;
        cin >> u >> v;
        adj[u].pb(v);
        adj[v].pb(u);
    }
    go(1, 0);
    for (int i=1; i<=n; i++) I.pb(i);
    q = sqrt(n+1);
    sort (all(I), [&](int i, int j){
        if (d[i] == d[j]) return i < j;
        return d[i] > d[j];
    });
    for (auto v:I) if (!vis[v]) {
        for (int i=0; i<q; i++) {
            if (v == 1) break;
            v = p[v];
        }
        if (vis[v]) continue;
        gg(v);
        ans.pb(v);
    }
    cout << sz(ans) << endl;
    for (auto x:ans) cout << x << " "; cout << endl;
    init();
}

int main() {
    FAST;
    int t = 1;
    cin >> t;
    while (t--) {
        solve();
    }
}

/*



*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 10196kb

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

result:

ok correct (2 test cases)

Test #2:

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

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

result:

ok correct (10000 test cases)

Test #3:

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

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
1956 1911 1866 1821 1776 1731 1686 1641 1596 1551 1506 1461 1416 1371 1326 1281 1236 1191 1146 1101 1056 1011 966 921 876 831 786 741 696 651 606 561 516 471 426 381 336 291 246 201 156 111 66 21 1 
1
1 
23
957 913 869 825 781 737 693 649 605 561 517 473 429 385 341 297 253 209 165 121 77 33 1 
6...

result:

ok correct (100 test cases)

Test #4:

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

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
14792 14669 14546 14423 14300 14177 14054 13931 13808 13685 13562 13439 13316 13193 13070 12947 12824 12701 12578 12455 12332 12209 12086 11963 11840 11717 11594 11471 11348 11225 11102 10979 10856 10733 10610 10487 10364 10241 10118 9995 9872 9749 9626 9503 9380 9257 9134 9011 8888 8765 8642 85...

result:

ok correct (10 test cases)

Test #5:

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

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
6198 3292 1173 1 
5
10856 8392 191 194 1 
5
11363 8074 3349 490 1 
5
10707 9964 3909 3440 1 
6
15220 14683 8701 8697 1554 1 
6
15145 6253 4160 2685 221 1 
7
16006 8675 6700 1114 1030 263 1 
6
7893 6251 5472 2455 281 1 
6
14329 1630 1123 1062 36 1 
5
9027 8919 7878 2555 1 

result:

ok correct (10 test cases)

Test #6:

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

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
199553 199105 198657 198209 197761 197313 196865 196417 195969 195521 195073 194625 194177 193729 193281 192833 192385 191937 191489 191041 190593 190145 189697 189249 188801 188353 187905 187457 187009 186561 186113 185665 185217 184769 184321 183873 183425 182977 182529 182081 181633 181185 18...

result:

ok correct (1 test case)

Test #7:

score: 0
Accepted
time: 71ms
memory: 20924kb

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
99554 99107 98660 98213 97766 97319 96872 96425 95978 95531 95084 94637 94190 93743 93296 92849 92402 91955 91508 91061 90614 90167 89720 89273 88826 88379 87932 87485 87038 86591 86144 85697 85250 84803 84356 83909 83462 83015 82568 82121 81674 81227 80780 80333 79886 79439 78992 78545 78098 77...

result:

ok correct (1 test case)

Test #8:

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

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
149099 118962 108151 81938 4128 1 

result:

ok correct (1 test case)

Test #9:

score: -100
Time Limit Exceeded

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:


result: