#9884. 树上统计3

    ID: 9884 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>树上主席树可持久化线段树LCA离散化路径第k小强制在线

树上统计3

题目描述

给定一棵 nn 个节点的树,每个点有一个权值。有 mm 个询问,每次给你 u,v,ku,v,k,你需要回答 u xor lastu \text{ xor last}vv 这两个节点间第 kk 小的点权。

其中 last\text{last} 是上一个询问的答案,定义其初始为 00,即第一个询问的 uu 是明文。

输入格式

第一行两个整数 n,mn,m

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

后面 n1n-1 行每行两个整数 x,yx,y,表示点 xx 到点 yy 有一条边。

最后 mm 行每行三个整数 u,v,ku,v,k,表示一组询问。

输出格式

mm 行,每行一个正整数表示每个询问的答案。

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

样例分析

![image-20240510073623551](S7 实践-3.png)

第一次询问,询问结点 252 \to 5 这条路径上的第 11 小的点权,结果为 22

第二次询问,询问结点 252 \to 5 这条路径上的第 22 小的点权,结果为 88

第三次询问,询问结点 252 \to 5 这条路径上的第 33 小的点权,结果为 99

第四次询问,询问结点 252 \to 5 这条路径上的第 44 小的点权,结果为 105105

第五次询问,询问结点 787 \to 8 这条路径上的第 22 小的点权,结果为 77

数据范围与提示

  • 对于 100%100\% 的数据,1n,m1051\le n,m \le 10^5,点权在 [1,2311][1, 2 ^ {31} - 1] 之间。