A5438 | 二分图化
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定一个包含 $N$ 个顶点和 $M$ 条边的简单无向图。
图中包含顶点 $1, 2, \ldots, N$,第 $i$ 条边 $(1 \le i \le M)$ 连接顶点 $u_i$ 和 $v_i$。
你可以进行以下操作若干次(可以为 0 次):
图中包含顶点 $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$)
- 图保证是简单图
- 所有输入均为整数
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?