#1584. 2588. Spoj 10628. Count on a tree

2588. Spoj 10628. Count on a tree

#2588. Spoj 10628. Count on a tree

题目描述

给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。

输入格式

第一行两个整数N,M。

第二行有N个整数,其中第i个整数表示点i的权值。

后面N-1行每行两个整数(x,y),表示点x到点y有一条边。

最后M行每行两个整数(u,v,k),表示一组询问。

输出格式

M行,表示每个询问的答案。最后一个询问不输出换行符

样例

样例输入

8 5  

105 2 9 3 8 5 7 7  

1 2  

1 3  

1 4  

3 5  

3 6  

3 7  

4 8  

2 5 1  

0 5 2  

10 5 3  

11 5 4  

110 8 2  

样例输出

2  

8  

9  

105  

7   

数据范围与提示

HINT:

N,M<=100000

暴力自重。。。