编程题
旅行时的困惑 ### 题目描述 Waldives 有 $N$ 个小岛。目前的交通系统中包含 $N-1$ 条快艇专线,每条快艇专线连接两个岛。这 $N-1$ 条快艇专线恰好形成了一棵树。 由于特殊的原因,所有 $N-1$ 条快艇专线都是单向的。这导致了很多岛屿之间不能相互到达。因此,Waldives 政府希望新建一些公交线路,使得建设完毕后,任意两个小岛都可以互相到达。为了节约开支,政府希望建设最少的公交线路。 同时,出于规划考虑,每一条公交线路都有如下的要求: 1. 每一条交通线路包含若干条连续的快艇专线,你可以认为一条公交线路对应树上的一条路径,而其所包含的若干快艇专线则对应树上被这条路径所覆盖的树边(也就是之前已经存在的某个快艇专线); 2. 显然一条交通线路只能覆盖树上任意一条边至多一次; 3. 公交线路中所包含的每一个快艇专线都是有方向的,并且与其所覆盖的树边的方向相反; 4. 不同的公交线路可以覆盖树上相同的点或者相同的边。 Waldives 的 $N$ 个岛屿分别从 $0$ 到 $N-1$ 编号。现在给出 Waldives 已有的快艇专线信息,请计算最少所需要新建的交通线路的数量。 ### 输入描述 第一行包含一个整数 $N$。 接下来 $N-1$行,每行包含两个整数 $x,~y$。表示存在一条从岛屿 $x$ 开往岛屿 $y$ 的快艇专线。 其中,$1~\leq~N~\leq~10^5$。 ### 输出描述 输出一行一个整数,表示需要建设的最少的交通线路数量。 ### 输入输出样例 #### 示例 1 >输入 ``` txt 4 0 1 1 2 1 3 ``` >输出 ``` txt 2 ```
查看答案
赣ICP备20007335号-2