Banner Home Page DIY Contests Problems Ranklist Status Statistics

LB出题

Time Limit : 9000/3000ms (Java/Other)   Memory Limit : 65535/102400K (Java/Other)
Total Submission(s) : 12   Accepted Submission(s) : 2

Font: Times New Roman | Verdana | Georgia

Font Size:

Problem Description

在LB学了不少算法之后,他决定自己也出一个题来给小学弟做。给定一棵n个节点的以1为根的树,节点i上有权值w[i],节点i的深度为deep[i]。有多个询问每次询问给定一组x,k令x1 = (x^last_ans)%n+1,k1 = k%deep[x]+1,那么在x1到根的路径上任选一个节点y有z = w[x] xor w[y](xor为异或运算),在所有z的值中求第k1小。deep[1]=1,last_ans表示上一次询问的答案,初始时last_ans=0。

Input

多组数据,每组数据第一行输入n,q,第二行n个整数表示1~n这n个节点的点权。接下来的n-1行表示树中的边a,b表示节点a与节点b相连。最后q行表示q个询问每组询问输入x,k。

Output

每组数据输出q行表示每次询问取得的第k小的异或值。

Sample Input

5 5
3 7 9 5 2
1 2
1 3
3 4
4 5
2 1
2 2
4 1
4 2
4 3

Sample Output

10
12
6
0
11

Author

zhengjinke2123

Statistic | Submit | Back