#L4072. 「GDKOI-S 2023」树

「GDKOI-S 2023」树

题目描述

给定一棵 nn 个结点的有根树 TT,结点从 11 开始编号,根结点为 11 号结点,每个结点有一个正整数权值 viv_i

QQ 次询问,对于一次询问,给定 (x,k)(x, k),设 xx 号结点的子树内(包含 xx 自身)的所有满足距离 xx 号结点不超过 kk 的结点编号为 c1,c2,,cmc_1, c_2, \cdots, c_m(注:原题中“ckc_k”应为笔误,此处修正为 cmc_m,表示符合条件的结点总数),则这次询问的答案为:

$$(v_{c_1} \oplus d(c_1, x)) + (v_{c_2} \oplus d(c_2, x)) + \cdots + (v_{c_m} \oplus d(c_m, x)) $$

其中 d(x,y)d(x, y) 表示树上 xx 号结点与 yy 号结点间唯一简单路径所包含的边数,d(x,x)=0d(x, x) = 0\oplus 表示异或运算。

输入格式

  1. 第一行一个整数 nn,表示树的大小。
  2. 第二行 nn 个整数,表示 v1,v2,,vnv_1, v_2, \cdots, v_n
  3. 第三行 n1n - 1 个整数,依次表示 22 号结点到 nn 号结点的父亲编号 p2,p3,,pnp_2, p_3, \cdots, p_n(满足 1pi<i1 \leq p_i < i)。
  4. 第四行一个整数 QQ,表示询问次数。
  5. 接下来 QQ 行,每行两个整数 x,kx, k,表示一组查询。

输出格式

输出共 QQ 行,第 ii 行一个整数,表示第 ii 次询问的答案。

样例

输入

10
9 3 0 7 4 8 8 7 2 5
1 1 2 2 3 6 6 8 7
10
8 2
2 1
5 1
4 1
4 1
1 4
4 1
6 3
4 1
1 4

输出

10
14
4
7
7
55
7
30
7
55

数据范围与提示

  • 对于 10%10\% 的数据,满足 n,Q2×103n, Q \leq 2 \times 10^3
  • 对于 20%20\% 的数据,满足 n,Q105n, Q \leq 10^5
  • 对于另外 20%20\% 的数据,满足 pi=i1p_i = i - 1(树为链状)。
  • 对于另外 10%10\% 的数据,满足 k20k \leq 20
  • 对于另外 20%20\% 的数据,满足 k=nk = n(查询子树内所有结点)。
  • 对于另外 10%10\% 的数据,满足 vi=0v_i = 0
  • 对于 100%100\% 的数据,满足 1n,Q1061 \leq n, Q \leq 10^60vi1090 \leq v_i \leq 10^91pi<i1 \leq p_i < i1x,kn1 \leq x, k \leq n