#U41492. 树上数颜色

树上数颜色

树上数颜色

  • 时间限制:3 秒
  • 内存限制:512 MiB

题目描述

给定一棵以结点 11 为根的树,每个结点都有一种颜色。

每次询问给出一个结点 xx,请计算以 xx 为根的子树中共有多少种不同的颜色。

输入格式

第一行输入一个整数 nn,表示树的结点数。

接下来 n1n-1 行,每行输入两个整数 u,vu,v,表示结点 uu 与结点 vv 之间有一条边。

接下来一行输入 nn 个整数 c1,c2,,cnc_1,c_2,\ldots,c_n,其中 cic_i 表示结点 ii 的颜色。

接下来一行输入一个整数 mm,表示询问数。

接下来 mm 行,每行输入一个整数 xx,表示询问以 xx 为根的子树。

输出格式

对每次询问输出一行一个整数,表示相应子树中的不同颜色数。

样例输入 1

5
1 2
1 3
2 4
2 5
1 2 2 3 3
5
1
2
3
4
5

样例输出 1

3
2
1
1
1

数据范围

对于所有数据,保证 1n1051\le n\le 10^50mn0\le m\le n0cin0\le c_i\le n,输入的边构成一棵树,1xn1\le x\le n

子任务编号 分值 特殊限制
1 15 n100n\le 100
2 所有结点的颜色两两不同
3 30 n,m20000n,m\le 20000
4 40 无特殊限制