#D1016. 保护计划

保护计划

题目背景

给一棵二叉树,根节点被感染,每秒扩散一步。每秒之前可以选择一个未感染的点切除,最多保护多少节点?

题目描述

奆发现了一棵二叉树,它有 nn 个顶点,编号从 11nn 。二叉树每个顶点的度最多为 33 ,而根是编号为 11 的顶点,它的度最多为 22

不幸的是,根节点被感染了。

以下事件会发生 nn 次:

  • 奆可以选择一个未感染(也未删除)的顶点,删除它和所有与之相邻的边,或者什么都不做。
  • 然后,感染会扩散到与已感染顶点有边相连的每个顶点(所有已感染顶点都会继续受到感染)。

由于奆没有太多时间思考,请告诉他最多可以挽救多少个顶点?

注意,删除的顶点不计入挽救的顶点

输入格式

第一行输入一个整数 nn ( 1n3×1051 ≤ n ≤ 3\times 10^5 ) 表示树上顶点的数量。

接下来的 n1n-1 行分别包含两个整数: ui,viu_i,v_i ( 1ui,vin1 \le  u_i, v_i \le n ) 描述一条树上的边。

输出格式

输出最多保护节点的数量?

输入输出样例 #1

输入 #1

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

输出 #1

2

输入输出样例 #2

输入 #2

15
1 2
2 3
3 4
4 5
4 6
3 7
2 8
1 9
9 10
9 11
10 12
10 13
11 14
11 15

输出 #2

10

说明/提示

对于 30%30 \% 的数据:1n201\le n\le 20

对于 60%60 \% 的数据:1n20001\le n\le 2000

对于 100%100 \% 的数据:1n3×1051\le n\le 3\times 10^5