Count on a tree II/【模板】树分块
题目背景
原 bzoj2589。
题目描述
给定一个 $n$ 个节点的树,每个节点上有一个整数,$i$ 号点的整数为 $val_i$。
有 $m$ 次询问,每次给出 $u',v$,您需要将其解密得到 $u,v$,并查询 $u$ 到 $v$ 的路径上有多少个不同的整数。
解密方式:$u=u' \operatorname{xor} lastans$。
$lastans$ 为上一次询问的答案,若无询问则为 $0$。
输入输出格式
输入格式
第一行有两个整数 $n$ 和 $m$。
第二行有 $n$ 个整数。第 $i$ 个整数表示 $val_i$。
在接下来的 $n-1$ 行中,每行包含两个整数 $u,v$,描述一条边。
在接下来的 $m$ 行中,每行包含两个整数 $u',v$,描述一组询问。
输出格式
对于每个询问,一行一个整数表示答案。
输入输出样例
输入样例 #1
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
输出样例 #1
4
4
说明
对于 $100\%$ 的数据,$1\le u,v\le n\le 4\times 10^4$,$1\le m\le 10^5$,$0\le u',val_i<2^{31}$。