博丽大结界的稳定轴心
题号:NC312883
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}博丽灵梦在维护大结界时,发现结界由 n 个灵力节点和 n-1 条通道组成,呈现出清晰的树状结构。为了保证灵力流动的稳定,灵梦需要从这 n 个节点中挑选一个作为“轴心”(即根节点)。
\hspace{15pt}一个轴心节点 r 是合法的,当且仅当将该树以 r 为根时,它变成了一棵标准的二叉树
\hspace{15pt}灵梦作为博丽巫女,需要统计出所有合法的轴心节点数量。请你帮助她完成这个任务。

【名词解释】
\hspace{15pt}二叉树:满足以下全部条件的树。
\hspace{23pt}\bullet\,二叉树可以是空集;若不为空,则由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成;
\hspace{23pt}\bullet\,每个节点要么没有父节点连接(此时该节点被称为根节点)、要么被 1 个父节点连接(此时该节点被称为父节点的子节点);
\hspace{23pt}\bullet\,每个节点连接的子节点数量要么为 0 (此时该节点被称为叶子节点),要么不超过 2,且此时每个子节点都有明确的“左”或“右”属性。

输入描述:

\hspace{15pt}第一行输入一个整数 n\left(1 \leqq n \leqq 10^5\right),表示结界中节点的数量。 
\hspace{15pt}此后 n-1 行,第 i 行输入两个整数 u_iv_i\left(1 \leqq u_i, v_i \leqq n;\, u_i \neq v_i\right),表示节点 u_i 与节点 v_i 之间存在一条通道。保证给定的边一定构成一棵树。

输出描述:

\hspace{15pt}输出一个整数,表示可以作为合法轴心的节点数量。
示例1

输入

复制
5
1 2
1 3
1 4
4 5

输出

复制
4

说明

\hspace{15pt}在这个样例中,各节点的度数(连接的边数)分别为:d(1)=3, d(2)=1, d(3)=1, d(4)=2, d(5)=1
\hspace{23pt}\bullet\,如果我们以节点 1 为轴心,节点 1 会有 3 个直接相连的子节点(2, 3, 4),超过了 2 个,因此节点 1 不合法;
\hspace{23pt}\bullet\,如果我们以节点 2 为轴心,节点 2 只有 1 个子节点(1);此时节点 1 变成了节点 2 的子节点,它下面连接着 2 个子节点(3, 4);节点 4 则有 1 个子节点(5)。所有节点的子节点数都 \leqq 2,因此节点 2 合法;
\hspace{23pt}\bullet\,类似地,可以验证以节点 3、节点 4 或节点 5 为轴心也都是合法的。
\hspace{15pt}综上,共有 4 个合法的轴心。
示例2

输入

复制
6
1 2
1 3
1 4
1 5
1 6

输出

复制
0
示例3

输入

复制
4
1 2
2 3
3 4

输出

复制
4