/ Vijos / 题库 /

树上RKQ问题

树上RKQ问题

时间限制:1秒  内存限制:256M


【题目描述】

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

【输入格式】

  第一行两个整数 \(N,M\)。
  第二行有 \(N\) 个整数,其中第i个整数表示点 \(i\) 的权值(绝对值不超过 \(10^9\))。
  后面 \(N-1\) 行每行两个整数 \((x,y)\),表示点 \(x\) 到点 \(y\) 有一条边。
  最后 \(M\) 行每行两个整数 \((u,v,k)\),表示一组询问。

【输出格式】

  \(M\) 行,表示每个询问的答案。

【输入输出样例】

 Input

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

 Output

2
8
9
105
7

【数据限制】

  对于 \(100\%\) 的数据,\(N,M≤100000\)。

【来源】

  Mr.he

信息

ID
2578
难度
(无)
分类
树结构 | 数据结构 | 线段树 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者