logo AlgoBeat OnlineJudge
登录 注册

#102589. [BZOJ 2589] Spoj 10707 Count on a tree II

内存限制:400 MiB 时间限制:20000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v),你需要回答u xor lastans和v这两个节点间有多少种不同的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。

输入格式

第一行两个整数N,M。

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

后面N-1行每行两个整数(x,y),表示点x到点y有一条边。

最后M行每行两个整数(u,v),表示一组询问。

数据范围是N<=40000 M<=100000 点权在int范围内

输出格式

M行,表示每个询问的答案。

样例

样例输入

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

数据范围与提示

暴力自重。。。