#P6177. Count on a tree II/【模板】树分块

    ID: 5147 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>倍增最近公共祖先,LCA树链剖分,树剖可持久化块状链表,块状数组,分块

Count on a tree II/【模板】树分块

题目背景

原 bzoj2589。

题目描述

给定一个 nn 个节点的树,每个节点上有一个整数,ii 号点的整数为 valival_i

mm 次询问,每次给出 u,vu',v,您需要将其解密得到 u,vu,v,并查询 uuvv 的路径上有多少个不同的整数。

解密方式:u=uxorlastansu=u' \operatorname{xor} lastans

lastanslastans 为上一次询问的答案,若无询问则为 00

输入格式

第一行有两个整数 nnmm

第二行有 nn 个整数。第 ii 个整数表示 valival_i

在接下来的 n1n-1 行中,每行包含两个整数 u,vu,v,描述一条边。

在接下来的 mm 行中,每行包含两个整数 u,vu',v,描述一组询问。

输出格式

对于每个询问,一行一个整数表示答案。

8 2
105 2 9 3 8 5 7 7 
1 2
1 3
1 4
3 5
3 6
3 7
4 8
2 5
3 8
4
4

提示

对于 100%100\% 的数据,1u,vn4×1041\le u,v\le n\le 4\times 10^41m1051\le m\le 10^50u,vali<2310\le u',val_i<2^{31}