#P3177. Redundant Paths
Redundant Paths
描述
为了从()个牧场(编号为)中的一个前往另一个牧场,贝茜和牛群不得不经过“烂苹果之树”附近的路径。奶牛们如今厌倦了经常被迫走特定的路径,想要修建一些新路径,使得任意两个牧场之间始终至少有两条独立的路线。它们目前任意两个牧场之间至少有一条路线,现在希望达到至少两条。当然,奶牛从一个牧场前往另一个牧场时只能走官方路径。
给定当前()条路径的描述(每条路径恰好连接两个不同的牧场),确定必须修建的最少新路径数量(每条新路径恰好连接两个牧场),使得任意两个牧场之间至少有两条独立的路线。如果两条路线不使用任何相同的路径,即使它们沿途访问相同的中间牧场,也被视为独立路线。
可能已经存在多对牧场之间有不止一条路径,你也可以修建与现有路径连接相同牧场的新路径。
输入
第1行:两个用空格分隔的整数和。
第2行到第行:每行包含两个用空格分隔的整数,表示某条路径两端的牧场。
输出
第1行:一个整数,表示必须修建的最少新路径数量。
输入数据 1
7 7
1 2
2 3
3 4
2 5
4 5
5 6
5 7
输出数据 1
2
提示
样例解释:
路径的一种可视化结构如下:
1 2 3
+---+---+
| |
| |
6 +---+---+ 4
/ 5
/
/
7 +
修建从到和从到的新路径可满足条件。
1 2 3
+---+---+
: | |
: | |
6 +---+---+ 4
/ 5 :
/ :
/ :
7 + - - - -
检查部分路线:
- : 和
- : 和
- : 和
事实上,任意两个牧场之间都通过两条路线连接。
可能添加其他路径也能解决问题(如从到的路径),但最少需要添加条路径。
来源
USACO 2006 一月黄金级