- [KBC003F] Training
本题 std 和数据有误
- 2025-1-7 22:30:24 @
本题出题人给出的 std 是:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int n,m,k,d[N];
signed main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i = 1,x,y;i<=m;i++)
cin>>x>>y,d[x]++,d[y]++;
for(int i = 1;i<=n;i++)
if(d[i]%2==1)
k++;
k = k/2;
if((m+k)%2) k++;
cout<<k;
return 0;
}
它基于如下做法:
- 题面可以抽象为一张 个结点 条边的无向图,我们需要加上最少的边数使其成为若干个偶数长度环的叠加(可以不是简单环)。
- 注意到所有点度数为偶数且有偶数条边的连通图必存在欧拉回路(满足要求),基于这一事实判断即可。
然而,std 无法通过以下 hack 数据,因为它没有判断这张图是否连通:
样例输入 3
4 4
1 1
2 2
3 3
4 4
样例输出 3
0
样例答案 3
4
样例输入 4
9 9
1 2
2 3
3 1
4 5
5 6
6 4
7 8
8 9
9 7
样例输出 4
1
样例答案 4
3
因此本题原版数据不一定是正确的。
我们将在近期更新 std 和数据。
1 条评论
-
nr0728 LV 5 @ 2025-1-8 10:38:40
感谢对我们题目的检查,出题人疑似过于自信了,建议把本题与前面的题交换
- 1
信息
- ID
- 79
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 8
- 已通过
- 1
- 上传者