A83509.二分图化
普及-
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
题目描述
给定一个包含 N 个顶点和 M 条边的简单无向图。
图中包含顶点 1,2,…,N,第 i 条边 (1≤i≤M) 连接顶点 ui 和 vi。
你可以进行以下操作若干次(可以为 0 次):
- 选择一条尚未被删除的边,将其删除。
你的目标是让图变成二分图。
请输出最少需要进行多少次操作,才能使删除操作后的图成为二分图。
什么是“简单图”?
若一个图没有自环(即不存在 ui=vi)且没有重边(不存在 ui=uj 且 vi=vj 的不同边对),则称该图为简单图。
什么是“二分图”?
如果能够将图中每个顶点染成黑色或白色,使得:
- 对于每一条边,连接的两个顶点颜色不同,
则称该图为二分图。
输入格式
从标准输入读取:
N M
u1 v1
u2 v2
⋮
uM vM
输出格式
输出一个整数,表示最少需要删除多少条边,才能使图成为二分图。
输入输出样例
输入#1
5 8 1 2 1 3 1 4 2 3 2 5 3 4 3 5 4 5
输出#1
2
输入#2
2 1 1 2
输出#2
0
输入#3
10 20 5 9 1 4 3 8 1 6 4 10 5 7 5 6 3 7 3 6 5 10 1 3 3 4 6 7 1 2 4 7 1 5 1 9 9 10 4 5 8 9
输出#3
5
说明/提示
样例 1 说明
可以通过删除两条边使图变为二分图:
例如删除连接顶点 1 和 3 的边,以及连接顶点 3 和 5 的边。
如果只删除一条边或不删除边,都无法使图成为二分图。
因此答案为 2。
样例 2 说明
该图本身就是二分图。
因此不需要进行任何操作,答案为 0。
数据范围
- 2≤N≤10
- 1≤M≤2N(N−1)
- 1≤ui<vi≤N(1≤i≤M)
- 图保证是简单图
- 所有输入均为整数