测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A5438. 二分图化

编程题 普及-
知识点

题目描述

给定一个包含 $N$ 个顶点和 $M$ 条边的**简单无向图**。
图中包含顶点 $1, 2, \ldots, N$,第 $i$ 条边 $(1 \le i \le M)$ 连接顶点 $u_i$ 和 $v_i$。

你可以进行以下操作若干次(可以为 0 次):

- 选择一条尚未被删除的边,将其删除。

你的目标是让图变成**二分图**。
请输出最少需要进行多少次操作,才能使删除操作后的图成为二分图。

---

### 什么是“简单图”?

若一个图**没有自环**(即不存在 $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
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 \le N \le 10$
- $1 \le M \le \dfrac{N(N-1)}{2}$
- $1 \le u_i < v_i \le N$($1 \le i \le M$)
- 图保证是简单图
- 所有输入均为整数
上一题 去做题 下一题