问题 4973 --健身Ⅳ

4973: 健身Ⅳ★★★

时间限制: 1 Sec  内存限制: 512 MB
提交: 55  解决: 39
[提交][状态][命题人:]

题目描述

为了达到减肥的目标,除了多运动外,hzt还需要控制饮食。
直接修改食谱hzt觉得很没意思,他想出了一个奇特的筛选方法,对饮食进行筛选。

hzt构想了一棵具有 n 个节点 n-1 条边的食物树,初始每个节点上都有一份食物。
每过1秒,不在根节点上的食物都会向其父节点移动。如果某一个节点上有至少2份食物,则它们会两两抵消被筛选掉。即某一节点上的 x 份食物会变成 x%2 份(%表示取模操作)。
如果一份食物最终能到达根节点且不会消失,则hzt会毫无依据的认为它是“健康”的,并吃掉它。
请问hzt最终可以吃掉多少份食物?

输入

输入包含两行。
第一行包含 1 个整数 n(2≤n≤100 000) ,表示食物树上的节点数。
第二行包含 n-1 个整数 p[2],p[3],...,p[n](1≤p[i]<i) ,其中 p[i] 表示 i 节点的父亲编号,根节点为 1 号节点。

输出

输出一个整数,表示最终可以吃掉多少份食物。
样例输入
Copy
3
1 1
样例输出
Copy
1

提示

样例2输入
5
1 2 2 2

样例2输出
3

样例3输入
18
1 1 1 4 4 3 2 2 2 10 8 9 9 9 10 10 4

样例3输出
4

在样例1中,hzt只能吃到 1 份食物,最初位于第一个节点中。 下一秒,来自第 2 和第 3 个节点的食物将移动到根节点并两两消灭,hzt无法吃到他们。

在样例2中,hzt能够吃到 3 份食物。 第一个是最初位于第一个节点上。 第二个食物是从第 2 个节点移动到第 1 个节点上的食物(hzt将吃掉它),此时来自第 3、4、5 个节点的食物将滚动到第 2 个节点上。 它们中的两个将被消灭,另一个未被消灭的将在下一秒从第二个节点移动到第一个节点,hzt将吃掉它。

来源

[提交][状态]