# 小张的手速大比拼 在很久很久以前,小张找到了一颗有 N 个节点的有根树 T 。 树上的节点编号在 1 到 N 范围内。 他很快发现树上的每个节点 i 都有一个对应的整数值 V[i]。 一个老爷爷对他说,给你一个整数 X, 如果你能回答我的 M 个问题,他就给张浩扬购买一些零食。 对于每个问题 Q[i], 请你找到 在 T 中以节点 Q[i] 为根的子树中的所有节点(包括 Q[i])中, 有没有两个节点 A, B (A != B) 的值 V[A] ^ V[B] 的异或和为 X。 如果有这样的两个节点, 请你输出 YES。 否则你需要输出 NO 表示没有节点符合上面的条件。 ## 输入描述 第一行包含三个整数 N (2 <= N <= 100000), X (0 <= X <= 1000000000),M(1 <= M <= N) , 表示树上节点的数量 和 老爷爷给的数 X 和 老爷爷的问题数量。 第二行包含 N 个数, 第 1 个数代表节点 1 的父节点, 第 2 个数代表节点 2 的父节点, 以此类推。 题目保证输入是一颗合法的有根树, 如果第 i 个数为 -1 表示 节点 i 没有父节点。 第三行包含 N 个数, 第 1 个数代表节点 1 的值 V[1], 第 2 个数代表节点 2 的值 V[2], 以此类推。 题目保证对于每一个下标1 <= i <= N 都有 0 <= V[i] <= 1000000000。 接下来有 M 行, 每一行包括一个整数Q[i] (1 <= Q[i] <= N), 代表老爷爷问张浩扬的第 i 个问题。 ## 输出描述 按顺序输出问题 Q[1], Q[2] ... Q[M] 的答案, 每个答案占一行。 ## 输入用例 4 2 3 -1 1 1 2 4 3 2 1 1 3 4 ## 输出用例 YES NO NO ## 提示 第一个用例给出的树是 1(4) 2(3) 3(2) 4(1) 括号左边的数为节点编号, 括号内的数为节点值。 对于第一个测试用例的第一个问题, 显然有节点 4 与 节点 2 的值 (1 ^ 3) == 2。 对于第一个测试用例的第二个问题, 以节点 3 为根的子树里只有 3 一个节点 并没有一对节点满足 A != B 且 (V[A] ^ V[B]) == 2。