#loj5770. 「CEOI2026」剪花
「CEOI2026」剪花
#5770. 「CEOI2026」剪花
标签: 传统 | 时间限制: 4000 ms | 内存限制: 256 MiB |
题目描述
题目译自 CEOI 2026 Day2 T1「Flower Cutting」
在 CEOI 社区花园里,我们种植了一群特殊的鲜花,它们的根紧紧地缠绕纠结在一起。若我们将根剪断,只要剪得不过于激进以至于造成不可逆的损伤,它们就能够重新生长恢复。
若两朵花 和 的根缠绕在一起,我们称它们是连通的;否则,称它们是未连通的。根按照以下规则生长:假设 和 是两朵未连通的花。若存在至少 朵其他的花 和 ,使得 和 都同时与 和 连通,则 和 之间的根就会生长,它们之间会变得连通。
这些鲜花已经生长了一段时间,所有能够根据上述规则长出的根都已经长成了。换句话说,若存在某些花 和 同时与两朵花 和 连通,则 和 之间保证已经是连通的。
我们需要将这个花园连根拔起并迁移到下一个 CEOI 举办地。为了简化搬迁,我们希望尽可能多地剪断花根。然而,我们希望鲜花随后能够重新生长恢复到当前的状态。在保证它们仍然能够重新生长恢复到当前状态的前提下,我们最多可以剪断多少对连通鲜花之间的根?生长过程需要经历多少轮迭代并不重要。
输入格式
第一行包含两个用空格分隔的整数 和 ,分别表示花的数量以及它们之间现有的连通关系数量。
接下来 行,每行包含一对整数 和 ,表示花 与花 之间是连通的。花用整数 进行编号。输入保证符合题目描述中所述的生长规则。
输出格式
输出一个整数,表示我们最多可以剪断的连通关系数量。
样例
输入
9 14
1 2
1 4
1 5
2 4
2 5
3 4
4 5
3 6
4 6
6 7
6 9
7 9
8 9
5 8
输出
2
样例中的鲜花在进行任何剪切之前的状态。可以验证,根据所述的生长规则,无法再长出额外的连通关系。

剪切后的样例鲜花少掉了 条连通关系。 和 之间的连通关系可以重新长出,因为花 和花 都同时与花 和花 连通。类似地, 和 之间的连通关系也可以重新长出,因为花 和花 都同时与花 和花 连通。

数据范围与提示
对于所有输入数据,满足:
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 且 | ||
| 保证每朵花最多与 朵其他的花连通 | ||
| 且 | ||
| 无附加限制 |