该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
给定一棵 n 个结点的有根树 T,结点从 1 开始编号,根结点为 1 号结点,每个结点有一个正整数权值 vi。
有 Q 次询问,对于一次询问,给定 (x,k),设 x 号结点的子树内(包含 x 自身)的所有满足距离 x 号结
点不超过 k 的结点编号为 c1,c2,...,ck,则这次询问的答案为:
(vc1⊕d(c1,x))+(vc2⊕d(c2,x))+⋅⋅⋅+(vck⊕d(ck,x))
其中 d(x,y) 表示树上 x 号结点与 y 号结点间唯一简单路径所包含的边数,d(x,x)=0。
⊕
表示异或运算。
输入格式
第一行一个整数 n 表示树的大小。
第二行 n 个整数表示 vi。
第三行 n−1 个整数,依次表示 2 号结点到 n 号结点,每个结点的父亲编号 pi。
第四行一个整数 Q。
接下来 Q 行,每行两个整数 x,k,表示一个 (x,k) 的查询。
输出格式
输出共 Q 行,第 i 行一个整数表示第 i 次询问的答案。
输入样例1
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
输出样例1
10
14
4
7
7
55
7
30
7
55
数据范围
对于 10% 的数据,满足 n,Q≤2×103。
对于 20% 的数据,满足 n,Q≤105。
对于另外 20% 的数据,满足 pi=i−1。
对于另外 10% 的数据,满足 k≤20。
对于另外 20% 的数据,满足 k=n。
对于另外 10% 的数据,满足 vi=0。
对于 100% 的数据,满足 1≤n,Q≤106,0≤v≤109,1≤pi<i,1≤x,k≤n。