QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#701123#6634. Central SubsetChensenCHXWA 759ms7040kbC++231.6kb2024-11-02 13:47:162024-11-02 13:47:16

Judging History

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

  • [2024-11-02 13:47:16]
  • 评测
  • 测评结果:WA
  • 用时:759ms
  • 内存:7040kb
  • [2024-11-02 13:47:16]
  • 提交

answer

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int N = 2e5 + 10;
int h[N], e[N << 1], ne[N << 1], idx;
bool vis[N];
bool d[N];
int ans[N];
int q[N], tt, hh;

void add(int a, int b) {
    e[++idx] = b, ne[idx] = h[a], h[a] = idx;
}

void bfs(int dis, int x) {
    tt = hh = 0;
    q[0] = x;
    int dep = -1;
    int last_tt = 0;
    while (hh <= tt) {
        int t = q[hh++];
        if (hh == N) hh = 0;
        vis[t] = true;
        
        for (int i = h[t]; i; i = ne[i]) {
            int j = e[i];
            if (tt == N) tt = 0;
            q[++tt] = j;
        }
        if (hh - 1 == last_tt) {
            dep++;
            last_tt = tt;
        }

        if (dep == dis) {
            break;
        }
    }
}

void solve() {
    
    int n, m;
    scanf("%d%d", &n, &m);
    for (int i = 0; i < m; i++) {
        int u, v;
        scanf("%d%d", &u, &v);
        add(u, v), add(v, u);
    }
    int num = 0;
    int sqrtn = ceil(sqrt(n));
    for (int i = 1; i <= n; i++) {
        if (num == sqrtn) break;
        if (vis[i]) continue;
        ans[num++] = i;
        bfs(sqrtn, i);
    }
    bool flag = 0;
    for (int i = 1; i <= n; i++) {
        if (!vis[i]) {
            puts("-1");
            return;
        }
    }
    printf("%d\n", num);
    for (int i = 0; i < num; i++) {
        printf("%d ", ans[i]);
    }
    puts("");
}

int main() {
    int T;
    scanf("%d", &T);
    while (T--) {
        solve();
        if (T) memset(h, 0, sizeof h), memset(vis, false, sizeof vis);
        idx = 0;
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

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

result:

ok correct (2 test cases)

Test #2:

score: 0
Accepted
time: 172ms
memory: 7040kb

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
1 6 11 
1
1 
2
1 6 
1
1 
1
1 
3
1 5 9 
1
1 
2
1 6 
3
1 7 15 
1
1 
4
1 7 13 19 
2
1 6 
2
1 6 
2
1 11 
1
1 
3
1 6 11 
1
1 
1
1 
2
1 9 
1
1 
2
1 4 
2
1 6 
2
1 6 
2
1 13 
1
1 
3
1 6 11 
1
1 
2
1 6 
1
1 
1
1 
4
1 7 13 19 
3
1 9 11 
2
1 6 
3
1 10 13 
1
1 
2
1 5 
3
1 6 7 
2
1 6 
3
1 9 15 
1
1 
3
1 6 11 
...

result:

ok correct (10000 test cases)

Test #3:

score: -100
Wrong Answer
time: 759ms
memory: 5640kb

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:

-1
44
1 54 107 115 131 196 219 236 244 328 337 375 429 432 501 538 606 655 660 674 690 693 730 797 876 1073 1105 1244 1303 1329 1335 1367 1401 1524 1527 1529 1532 1573 1639 1697 1843 1856 1889 1919 
-1
-1
1
1 
-1
-1
-1
-1
1
1 
-1
-1
-1
-1
1
1 
-1
-1
-1
-1
1
1 
-1
42
1 61 154 176 197 207 214 275 351 ...

result:

wrong answer Integer -1 violates the range [1, 45] (test case 1)