#apc001e. [apc001_e]Antennas on Tree

[apc001_e]Antennas on Tree

问题描述

给定一棵包含 NN 个顶点的树。这些顶点从 00N1N-1 进行编号,第 ii 条边 (0i<N10 ≤ i < N - 1) 连接了顶点 aia_ibib_i。对于每一对顶点 uuvv (0u,v<N0 ≤ u, v < N),我们定义距离 d(u,v)d(u, v) 为路径 uu-vv 上的边的数量。

预计某个顶点将被外星人入侵。当入侵发生时,Snuke 希望立即确定哪个顶点被入侵。为了做到这一点,他决定在某些顶点上安装天线。

首先,他决定天线的数量 KK (1KN1 ≤ K ≤ N)。然后,他选择 KK 个不同的顶点,在其上分别安装天线 0011、...、K1K - 1。如果顶点 vv 被外星人入侵,天线 kk (0k<K0 ≤ k < K) 将输出距离 d(xk,v)d(x_k, v)。基于这 KK 个输出,Snuke 将确定被入侵的顶点。因此,为了无论哪个顶点被入侵都能够确定被入侵的顶点,必须满足以下条件:

  • 对于每个顶点 uu (0u<N0 ≤ u < N),考虑向量 (d(x0,u),...,d(xK1,u))(d(x_0, u), ..., d(x_{K - 1}, u))。这些 NN 个向量是不同的。

找到满足条件时 KK 的最小值,即天线的数量。

约束条件

  • 2N1052 ≤ N ≤ 10^5
  • 0ai,bi<N0 ≤ a_i, b_i < N
  • 给定的图是一棵树。

输入

输入以以下格式从标准输入给出:

NN a0a_0 b0b_0 a1a_1 b1b_1 :: aN2a_{N - 2} bN2b_{N - 2}

输出

在满足条件时,打印天线数量 KK 的最小值。

示例输入 1

5
0 1
0 2
0 3
3 4

示例输出 1

2

例如,在顶点 1133 上安装天线。然后,以下五个向量是不同的:

  • (d(1,0),d(3,0))=(1,1)(d(1, 0), d(3, 0)) = (1, 1)
  • (d(1,1),d(3,1))=(0,2)(d(1, 1), d(3, 1)) = (0, 2)
  • (d(1,2),d(3,2))=(2,2)(d(1, 2), d(3, 2)) = (2, 2)
  • (d(1,3),d(3,3))=(2,0)(d(1, 3), d(3, 3)) = (2, 0)
  • (d(1,4),d(3,4))=(3,1)(d(1, 4), d(3, 4)) = (3, 1)

示例输入 2

2
0 1

示例输出 2

1

例如,在顶点 00 上安装天线。

示例输入 3

10
2 8
6 0
4 1
7 6
2 3
8 6
6 9
2 4
5 8

示例输出 3

3

例如,在顶点 004499 上安装天线。