#9913. 表亲是谁(无数据)

    ID: 9913 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>森林倍增K级祖先表亲查询深度分组离线查询

表亲是谁(无数据)

题目描述

波利卡普得到了一个家族关系树。这个树描述了 nn 个人的家族关系,编号从 11nn。树中的每个人最多有一个父母。

如果 aabb 的父母,我们称 aabb11-祖先。

如果 bb 有一个 11-祖先,并且 aabb11-祖先的 (k1)(k-1) -祖先的,我们称 aabbkk-祖先。

家族关系在找到的树中不形成循环。换句话说,没有人是自己的祖先,无论是直接还是间接的(即,没有人是自己某个 x-祖先)。

如果存在一个人 zz,他是 xxpp-祖先和 yypp-祖先 ,我们称两个人 xxyy 为 (xx ≠ yy) pp-表亲 (pp > 0)。

波利卡普想知道每个人有多少表亲以及他们的种类。他拿了一张纸,写下了 mm 对整数 viv_ipip_i。帮助他计算每对 viv_ipip_i 中,viv_i 有多少 pip_i-表亲。

输入格式

第一行输入包含一个整数 nn — 树中人的数量。下一行包含 nn 个用空格分隔的整数 r1,r2,...,rnr_1,r_2,...,r_n,其中 rir_i (1rin1 \le r_i \le n) 是第 ii 个人的父母编号,如果第 ii 个人没有父母,则为 00。可以保证家族关系不形成循环。

第三行包含一个数字 mm — 波利卡普的家族关系查询的数量。接下来的 mm 行包含一对用空格分隔的整数。第 ii 行包含数字 viv_ipip_i (1vi,pin1 \le v_i,p_i \le n)。

输出格式

输出 mm 个用空格分隔的整数 — 波利卡普查询的答案。按照输入中查询出现的顺序输出答案。

6
0 1 1 0 4 4
7
1 1
1 2
2 1
2 2
4 1
5 1
6 1
0 0 1 0 0 1 1 

样例分析

image.png

顶点 2211-表亲是顶点 22,顶点 5511-表亲是顶点 66

数据范围与提示

对于 100%100\% 的数据,1n1051\le n \le 10^51m1051 \le m \le 10^5