QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#127180#6634. Central Subsetxiaoxing666#RE 2ms9884kbC++171.2kb2023-07-19 13:53:032023-07-19 13:53:54

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-19 13:53:54]
  • 评测
  • 测评结果:RE
  • 用时:2ms
  • 内存:9884kb
  • [2023-07-19 13:53:03]
  • 提交

answer

#include<bits/stdc++.h>

using namespace std;
#define int long long
int n, m;
const int N = 4e5 + 20, M = 3e6;
int head[N], ver[M * 2], nxt[M * 2];
int tot = 0;
queue<int> q;
int d[N];
inline void add(int x, int y) {
	ver[++tot] = y;
	nxt[tot] = head[x];
	head[x] = tot;
}
void init() {
	tot = 0;
	for (int i = 0; i <= n; i++) {
		head[i] = 0;
		d[i] = -1;
	}
}
void bfs(int fir) {
	q.push(fir);
	d[fir] = 0;
	while (q.size()) {
		int x = q.front();
		q.pop();
		for (int _ = head[x]; _; _ = nxt[_]) {
			int y = ver[_];
			if (d[y] != -1) continue;
			d[y] = d[x] + 1;
			q.push(y);
		}
	}
}
signed main()
{
	int T;
	cin >> T;
	while (T--) {
		vector<int> ans;
		scanf("%lld%lld", &n, &m);
		init();
		for (int i = 1; i <= m; i++) {
			int x, y;
			scanf("%lld%lld", &x, &y);
			add(x, y);
			add(y, x);
		}
		bfs(1);
		int k = ceil(sqrt(n));
		for (int i = 1; i <= n; i++) {
			//cout << d[i] << " ";
			if (d[i] % (k + 1) == 0) {
				ans.push_back(i);
			}
		}
		//cout << endl;
		assert(ans.size() <= k);
		printf("%lld\n", (int)ans.size());
		for (int x : ans) {
			printf("%lld ", x);
		}
		puts("");
	}

	return 0;
}

詳細信息

Test #1:

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

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
Dangerous Syscalls

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:


result: