CF913B Christmas Spruce

题目描述

给定一棵有根树。有根树有一个特殊的顶点,称为根。所有的边都从根出发,指向其它顶点。如果存在一条从 $v$ 到 $u$ 的有向边,则称 $u$ 是 $v$ 的子节点,$v$ 是 $u$ 的父节点。如果一个顶点没有子节点但有父节点,则它被称为叶子结点。 如果一个有根树满足:它的每个非叶子结点至少有 $3$ 个叶子子节点,则称这棵树为“一棵 spruce”。现给定一棵有根树,判断它是否为 spruce。 有根树的定义参见 [这里](https://goo.gl/1dqvzz)。

输入格式

第一行包含一个整数 $n$,表示树的顶点数($3 \le n \le 1000$)。接下来的 $n-1$ 行,每行包含一个整数 $p_i$($1 \le i \le n-1$),表示第 $i+1$ 个顶点的父节点编号($1 \le p_i \le i$)。 顶点 $1$ 为根节点。保证根节点至少有 $2$ 个子节点。

输出格式

如果该树是一棵 spruce,则输出 "Yes";否则输出 "No"。

说明/提示

第一个示例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF913B/3d87b6a6cda0ba6f4ad05908fb42ae8248c8369b.png) 第二个示例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF913B/bd0b03933e2dbb274b2b58b0c7a13d930c39c80b.png) 该树不是 spruce,因为非叶子结点 $1$ 只有 $2$ 个叶子子节点。 第三个示例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF913B/a9d72240b2a5e338c43541d320aabfb5ee526dff.png) 由 ChatGPT 5 翻译