AT_abc427_c [ABC427C] Bipartize
题目描述
有一个包含 $N$ 个顶点和 $M$ 条边的无向简单图。该图包含顶点 $1, 2, \ldots, N$,第 $i$ 条边 $(1\le i\le M)$ 连接顶点 $u_i$ 和 $v_i$。
你可以进行如下操作任意次(也可以不进行操作):
- 选择一条尚未被删除的边,并将其删除。
你的目标是通过上述操作使图变为二分图。请你求出最少需要进行多少次操作,才能使经过操作后的图变为二分图。
什么是简单图?简单图指的是没有自环(即不存在 $u_i = v_i$ 的边)且没有重边(不存在 $u_i = u_j$ 且 $v_i = v_j$ 的两条边)。
什么是二分图?如果能够给该图的每一个顶点染黑或染白,使得任意一条边连接的两个顶点颜色不同,则该图为二分图。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$
> $u_1$ $v_1$
> $u_2$ $v_2$
> $\vdots$
> $u_M$ $v_M$
输出格式
输出使图变为二分图所需的最小操作次数。
说明/提示
### 样例解释 1
你可以通过删除两条边使图变为二分图:例如,删除连接顶点 $1$ 和 $3$ 的边,以及连接顶点 $3$ 和 $5$ 的边。
无法通过一次或零次操作使图变为二分图,因此输出 `2`。
### 样例解释 2
该图一开始就是二分图。因此,需要进行的操作次数为 $0$。
### 数据范围
- $2\le N\le10$
- $1\le M\le\dfrac{N(N-1)}2$
- $1\le u_i < v_i \le N\ (1\le i\le M)$
- 给定的图是简单图。
- 所有输入值均为整数。
由 ChatGPT 5 翻译