编程题
### 问题描述 一天,小蓝在他的小屋外发现了一颗神奇的树,它的树叶上闪烁着各种不同的颜色。小蓝对这颗树产生了浓厚的兴趣,于是他决定研究这颗树的奥秘。这棵树被称为"奇幻之树",因为它拥有神奇的能力。 每个节点都有自己独特的颜色,这些颜色代表了树上不同生物的种类。小蓝注意到,树的每个节点都有一个颜色标签 $c_i$ ,而这些颜色标签在树上不断变化,使得树上的生物多样性持续增加。 小蓝决定用算法来研究这颗树。他提出了一些问题,希望能够了解奇幻之树上不同颜色的种类数量。每次他会选择一颗树上的节点,然后探索以这个节点为根的**子树**中的颜色种类。 具体问题如下:给定一棵节点为 $n$ 的有根树,**根节点为** $1$ ,每个节点有一个颜色 $c_i$ ,小蓝有 $q$ 组询问,每次询问给定一个节点 $x$ ,问 $x$ 为根的**子树**中,有多少种不同的颜色。 小蓝很期待你能够帮助他解决这些有趣的问题,揭示奇幻之树的神奇之处。每次你回答一个询问,都会让小蓝对这颗树的理解更进一步,同时也会使他的奇幻之旅变得更加精彩。 ### 输入格式 第一行输入两个整数 $n, q$ 。代表树的节点数量与询问数量。 接下来一行,输入 $n$ 个整数 $c_1, c_2, c_3...c_n$ , 代表每个节点的颜色。 接下来 $n - 1$ 行,每行两个整数 $u_i, v_i$ ,代表存在一条边连接 $u_i,v_i$ 两点。 接下来 $q$ 行, 每行一个整数 $x_i$ ,代表询问的点。 ### 输出格式 输出 $q$ 行,每行一个整数,代表每次询问的答案。 ### 样例输入 ``` 5 3 1 2 3 4 5 1 2 1 3 2 4 2 5 1 2 3 ``` ### 样例输出 ``` 5 3 1 ``` ### 说明 - $1$ 号节点为根节点,包含 $\lbrace 1,2,3,4,5 \rbrace $ 共计 $5$ 种颜色。 - 选中 $2$ 号节点时,包含 $\lbrace 2,4,5 \rbrace $ 共计 $3$ 种颜色。 - 选中 $3$ 号节点时,包含 $\lbrace 3 \rbrace $ 共计 $1$ 种颜色。 ### 评测数据范围 $1 \le n, q \le 10^5, 1 \le c_i \le 100, 1 \le u_i,v_i,x_i \le n$ 。 输入保证是一棵树。
查看答案
赣ICP备20007335号-2