Spoj 10707 Count on a tree II
给定一棵包含 个节点的树,每个节点都有一个权值。你需要回答 次询问。
每次询问给出两个整数 ,实际询问的两个节点为 和 ,其中 表示上一次询问的答案,初始值为 。对于每次询问,求这两个节点之间的简单路径上共有多少种不同的节点权值。
输入格式
第一行包含两个整数 ,分别表示树的节点数和询问数。
第二行包含 个整数,其中第 个整数表示节点 的权值。
接下来 行,每行包含两个整数 ,表示节点 与节点 之间有一条边。
最后 行,每行包含两个整数 ,表示一组经过异或加密的询问。
输出格式
输出共 行,每行一个整数,表示对应询问路径上不同节点权值的种数。
样例输入
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
数据范围
- ;
- ;
- 节点权值在
int类型的取值范围内; - 时间限制为 ;
- 内存限制为 。
来源与许可
本题为 SPOJ 10707「Count on a tree II」,题面与测试数据整理自 BZOJ 2589。
样例 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
输出
4
4