QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#392830 | #4686. Tours | suomynonA | WA | 0ms | 3772kb | C++20 | 1.3kb | 2024-04-17 21:07:54 | 2024-04-17 21:07:55 |
Judging History
answer
#include <bits/stdc++.h>
using u32 = unsigned int;
const int N = 2e3, M = 2e3;
std::mt19937 rnd(19260817);
int n, m;
struct Edge { int x, y; }ed[M + 5];
std::vector<int> v[N + 5];
int fa[N + 5];
bool vis[N + 5];
void dfs1(int x) {
vis[x] = 1;
for (auto i : v[x]) if (!vis[i]) fa[i] = x, dfs1(i);
}
u32 val[M + 5], ar[N + 5];
void dfs2(int x) { for (auto i : v[x]) if (fa[i] == x) dfs2(i), ar[x] ^= ar[i]; }
int main() {
std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
std::cin >> n >> m;
for (int i = 1, x, y; i <= m; ++i)
std::cin >> x >> y, ed[i] = {x, y}, v[x].push_back(y), v[y].push_back(x);
dfs1(1);
for (int i = 1; i <= m; ++i) {
if (fa[ed[i].x] == fa[ed[i].y]) std::swap(ed[i].x, ed[i].y);
if (fa[ed[i].y] != ed[i].x) val[i] = rnd(), ar[ed[i].x] ^= val[i], ar[ed[i].y] ^= val[i];
}
dfs2(1);
for (int i = 1; i <= m; ++i) if (fa[ed[i].y] == ed[i].x) val[i] = ar[ed[i].y];
std::sort(val + 1, val + 1 + n);
int ans = 0;
for (int i = 1, cnt = 0; i <= m; ++i) {
++cnt;
if (val[i] != val[i + 1]) {
if (val[i]) ans = std::__gcd(ans, cnt);
cnt = 0;
}
}
for (int i = 1; i <= ans; ++i) if (ans % i == 0) std::cout << i << " ";
std::cout << "\n";
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3708kb
input:
4 5 1 2 2 3 3 4 1 4 1 3
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3760kb
input:
6 6 1 2 2 3 1 3 1 4 2 5 3 6
output:
1 3
result:
ok 2 number(s): "1 3"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3648kb
input:
4 5 1 2 3 4 2 3 1 4 1 3
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3720kb
input:
6 6 1 2 2 3 1 4 2 5 1 3 3 6
output:
1 3
result:
ok 2 number(s): "1 3"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3640kb
input:
9 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 1 8 4 9 6 9
output:
1 2
result:
ok 2 number(s): "1 2"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
6 7 1 2 2 3 3 4 4 5 5 6 1 6 3 6
output:
1
result:
ok 1 number(s): "1"
Test #7:
score: -100
Wrong Answer
time: 0ms
memory: 3668kb
input:
33 36 2 22 12 18 27 28 9 19 26 27 6 21 15 16 2 3 7 24 3 12 4 23 28 29 5 14 29 30 1 10 11 13 6 13 16 25 14 21 4 16 10 19 10 11 5 15 1 8 3 20 7 13 25 26 29 31 17 23 8 18 12 24 25 30 31 32 17 20 15 22 9 18
output:
1
result:
wrong answer Answer contains longer sequence [length = 2], but output contains 1 elements