#P17166. [CEOI 2026] Flower Cutting

[CEOI 2026] Flower Cutting

题目描述

在 CEOI 社区花园中,我们培育着一批特殊的花,它们的根系紧密交织在一起。如果我们将这些根剪断,只要剪得不过于激进、没有造成无法修复的损伤,它们就会重新生长。

如果两朵花 aabb 的根系交织在一起,我们称它们是“相连”的;否则,称它们是“不相连”的。根系按照以下规则生长:设 aabb 是两朵不相连的花。如果至少存在另外 22 朵花 ccdd,使得 aabb 都分别与 ccdd 相连,那么 aabb 之间会长出根系,从而变为相连。

这些花已经生长了一段时间,所有能够按照上述规则长出的根都已经长成。换言之,如果两朵花 aabb 都与某两朵花 ccdd 相连,那么可以保证 aabb 也彼此相连。

现在,我们需要将整座花园连根挖起,并迁往下一届 CEOI 的举办地。为了简化迁移过程,我们希望剪断尽可能多的根。不过,我们也希望这些花最终能够重新生长到当前状态。最多可以剪断多少对相连花朵之间的根,使它们仍能恢复到当前状态?至于恢复需要经过多少轮生长并不重要。

输入格式

输入第一行包含两个以空格分隔的整数 nnmm,分别表示花朵数量以及当前已有的连接数量。接下来有 mm 行,每行包含一对整数 aia_ibib_i,表示花朵 aia_ibib_i 相连。花朵以 1n1\ldots n 的整数编号。输入保证满足题目描述中的规则。

输出格式

输出一个整数,表示最多可以剪断的连接数量。

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

提示

样例说明

下图表示样例中尚未剪断任何根时的花朵连接情况。可以验证,按照题目所述的生长过程,此时无法形成任何新的连接。

:::align{center} :::

剪断后的样例中少了 22 条连接。花朵 1122 都和花朵 4455 相连,因此花朵 1122 之间的连接可以重新长出。类似地,花朵 4455 都和花朵 1122 相连,因此花朵 4455 之间的连接也可以重新长出。

:::align{center} :::

限制条件

  • 1n10001\le n\le 1000
  • 1m1051\le m\le 10^5

子任务

  • 子任务 112020 分):n10n\le 10m20m\le 20
  • 子任务 221414 分):m=n(n1)2m=\dfrac{n(n-1)}{2}
  • 子任务 331515 分):保证每朵花至多与另外 77 朵花相连。
  • 子任务 441515 分):n50n\le 50m1000m\le 1000
  • 子任务 553636 分):无额外限制。

翻译由 ChatGPT-5.6 完成