Count on Tree
题号:NC210542
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一颗有个结点的树,树上每一个点都有一种颜色,颜色编号在1到之间。共有次查询,每次询问的路径上颜色为的结点有几个。本题强制在线,每个查询的都要异或上一次的答案。初始为0。

输入描述:

第一行两个数
接下来一行个数,第个数表示第个点的颜色。
接下来行,每行两个数,表示树上的边。
接下来一行一个数,表示查询数。
接下来行,每行三个数,查询树上    之间的路径上有多少个颜色为  的结点。

输出描述:

对于每一次查询,输出一个数表示答案。
示例1

输入

复制
5 3
1 1 3 2 3
1 2
1 3
3 4
1 5
5
2 3 1
7 3 3
2 5 3
5 0 0
2 2 2

输出

复制
2
1
1
1
1