#P3177. Redundant Paths

Redundant Paths

描述

为了从FF1F50001 \leq F \leq 5000)个牧场(编号为1F1 \ldots F)中的一个前往另一个牧场,贝茜和牛群不得不经过“烂苹果之树”附近的路径。奶牛们如今厌倦了经常被迫走特定的路径,想要修建一些新路径,使得任意两个牧场之间始终至少有两条独立的路线。它们目前任意两个牧场之间至少有一条路线,现在希望达到至少两条。当然,奶牛从一个牧场前往另一个牧场时只能走官方路径。

给定当前RRF1R10000F-1 \leq R \leq 10000)条路径的描述(每条路径恰好连接两个不同的牧场),确定必须修建的最少新路径数量(每条新路径恰好连接两个牧场),使得任意两个牧场之间至少有两条独立的路线。如果两条路线不使用任何相同的路径,即使它们沿途访问相同的中间牧场,也被视为独立路线。

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

输入

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

输出

第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 +  

修建从1166和从4477的新路径可满足条件。

   1   2   3  
   +---+---+  
   :   |   |  
   :   |   |  
 6 +---+---+ 4  
      / 5  :  
     /     :  
    /      :  
 7 + - - - -  

检查部分路线:

  • 121–2121 \rightarrow 216521 \rightarrow 6 \rightarrow 5 \rightarrow 2
  • 141–412341 \rightarrow 2 \rightarrow 3 \rightarrow 416541 \rightarrow 6 \rightarrow 5 \rightarrow 4
  • 373–73473 \rightarrow 4 \rightarrow 732573 \rightarrow 2 \rightarrow 5 \rightarrow 7

事实上,任意两个牧场之间都通过两条路线连接。
可能添加其他路径也能解决问题(如从6677的路径),但最少需要添加22条路径。

来源

USACO 2006 一月黄金级