QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#701004#6634. Central SubsetChensenCHXWA 171ms7028kbC++231.6kb2024-11-02 13:38:332024-11-02 13:38:34

Judging History

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

  • [2024-11-02 13:38:34]
  • 评测
  • 测评结果:WA
  • 用时:171ms
  • 内存:7028kb
  • [2024-11-02 13:38:33]
  • 提交

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 = 0;
    int last_tt = 0;
    while (hh <= tt) {
        int t = q[hh++];
        if (hh == N) hh = 0;
        vis[t] = true;
        if (dep == dis) {
            break;
        }
        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;
        }
    }
}

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;
}

详细

Test #1:

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

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: -100
Wrong Answer
time: 171ms
memory: 6972kb

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

result:

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