bzoj#P3696. 化合物

化合物

题目描述

首长 NOI 惨跪,于是去念文化课了。现在,他面对一道化学题。

这题的来源是因为在一个奇怪的学校两个化竞党在玩一个奇怪的博弈论游戏。这个游戏很蛋疼,我相信你们也没有兴趣听。

由于这个游戏涉及博弈论,因此化竞的同学就要求首长求一个类似 SGSG 函数的值。

他们手中有一种非常神奇的化合物,它的分子由 NN 个原子组成(不要在意一个原子可能和及其多个原子成键这个细节)。这个分子构成一个树结构,11 号分子为根。 若两个原子 i,ji,j 到它们的最近公共祖先的距离分别是 LiL_iLjL_j,定义它们的 Ai,jA_{i,j}值为:

Ai,j=Li xor LjA_{i,j}=L_i\ \texttt{xor}\ L_j

题目要求对于每一个 k(kN)k(k\in N),求出两两 AA 值为 kk 的原子对个数。

输入格式

第一行一个整数 NN

接下来 N1N-1 行,每行一个整数 pp,第 ii 行的整数表示第 ii 个原子的父亲为 pp

输出格式

K=0K=0 开始,第 k+1k+1 行输出两两 AA 值为 kk 的原子对个数,输出到最后一个不为零的数为止。

3
1
1
1
2

数据规模与约定

hh 表示树结构分子的最大深度。N105,h500N\le 10^5,h\le 500