QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#497584 | #6634. Central Subset | rgnerdplayer | WA | 34ms | 4032kb | C++20 | 1.4kb | 2024-07-29 14:27:02 | 2024-07-29 14:27:04 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int t;
cin >> t;
auto solve = [&]() {
int n, m;
cin >> n >> m;
vector<vector<int>> adj(n);
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
u--, v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
vector<int> vis(n), dep(n);
int sq = 0;
while (sq * sq < n) {
sq++;
}
vector<vector<int>> verts(sq);
auto dfs = [&](auto dfs, int u) -> void {
verts[dep[u] % sq].push_back(u);
vis[u] = true;
for (auto v : adj[u]) {
if (!vis[v]) {
dep[v] = dep[u] + 1;
dfs(dfs, v);
}
}
};
dfs(dfs, 0);
int x = 0;
for (int i = 0; i < sq; i++) {
if (!verts[i].empty() && verts[i].size() < verts[x].size()) {
x = i;
}
}
cout << verts[x].size() << '\n';
for (auto u : verts[x]) {
cout << u + 1 << " \n"[u == verts[x].back()];
}
};
while (t--) {
solve();
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3600kb
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 3 2 1 6
result:
ok correct (2 test cases)
Test #2:
score: 0
Accepted
time: 19ms
memory: 3552kb
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 4 8 12 1 2 2 3 7 1 1 1 1 3 1 4 7 1 1 3 1 11 5 3 3 12 11 1 1 4 1 6 11 16 2 3 8 2 7 3 3 1 10 9 1 1 3 4 8 12 1 2 1 1 2 2 9 1 1 2 1 3 2 2 6 3 1 11 5 3 1 12 11 1 1 3 4 8 12 1 2 3 2 6 13 1 2 1 1 4 2 7 12 17 2 4 3 3 1 5 11 3 2 11 10 1 1 2 1 4 1 3 2 4 9 3 2 10 9 1 1 3 1 5 9 1 2 2 4 9 2 1 3 1 1 2 3 7 2 1 8...
result:
ok correct (10000 test cases)
Test #3:
score: -100
Wrong Answer
time: 34ms
memory: 4032kb
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:
44 21 66 111 156 201 246 291 336 381 426 471 516 561 606 651 696 741 786 831 876 921 966 1011 1056 1101 1146 1191 1236 1281 1326 1371 1416 1461 1506 1551 1596 1641 1686 1731 1776 1821 1866 1911 1956 1 1 44 12 1056 57 102 147 192 1236 237 282 327 372 417 1461 462 1506 507 552 1596 597 1641 642 1686 6...
result:
wrong answer Condition failed: "getMaxBfsDist(n, subset) <= csqrtn" (test case 39)