9506 - Redundant Paths G

通过次数

3

提交次数

9

时间限制 : 1 秒
内存限制 : 128 MB

为了从 F(1\le F\le 5,000) 个牧场(编号为 1F)中的一个到达另一个牧场,贝西和其他牛群被迫经过腐烂苹果树附近。奶牛们厌倦了经常被迫走特定的路径,想要修建一些新路径,以便在任意一对牧场之间总是有至少两条独立的路线可供选择。目前在每对牧场之间至少有一条路径,他们希望至少有两条。当然,他们只能在官方路径上从一个牧场移动到另一个牧场。

给定当前 R(F-1\le R\le 10,000) 条路径的描述,每条路径恰好连接两个不同的牧场,确定必须修建的最少新路径数量(每条新路径也恰好连接两个牧场),以便在任意一对牧场之间至少有两条独立的路线。若两条路线不使用相同的路径,即使它们沿途访问相同的中间牧场,也被视为独立的。

在同一对牧场之间可能已经有多条路径,你也可以修建一条新路径连接与某条现有路径相同的牧场。

输入

1 行:两个用空格分隔的整数:FR

2 行到第 R+1 行:每行包含两个用空格分隔的整数,表示某条路径的两个端点牧场。

输出

1 行:一个整数,表示必须修建的新路径数量。

样例

输入

7 7
1 2
2 3
3 4
2 5
4 5
5 6
5 7

输出

2

提示

说明/提示

样例解释:

路径的一个可视化图如下:

16 和从 47 修建新路径满足条件。

检查一些路线:

  • 1 \to 21 \to21 \to6 \to5 \to2
  • 1 \to 41 \to2 \to3 \to41 \to6 \to5 \to4
  • 3 \to 73 \to4 \to73 \to2 \to5 \to7

事实上,每对牧场之间都由两条路线连接。

添加其他路径也可能解决问题(例如从 67 的路径)。然而,添加两条路径是最少的。

来源

USACO