编程题
### 问题描述 小郑在自家院子里种了一颗大果树,最近果树上结满了果实,可把小郑高兴坏了。 刚好小郑在研究 “空洞数” 的概念,对于一个包含若干正整数的集合 $S$,定义 “空洞数” 为最小的没有在集合 $S$ 中出现的正整数。 例如集合 ${1,2,4,6}$ 的 “空洞数” 为 $3$,集合 ${2,4}$ 的 “空洞数” 为 $1$。 假设小郑的果树有 $N$ 个节点,节点编号从 $1$ 到 $N$,其中根节点编号为 $1$,每个节点的果实都有重量 $a[i]$。 如果给你一个结点 $X$,你需要求出以 $X$ 为根的子树中所有节点的果实重量值所构成集合 $S$ 的“空洞数”。 ### 输入格式 第一行包含两个正整数 $N$、$Q$,代表小郑的果树节点个数和询问个数。 第二行包含 $N$ 个空格隔开的正整数,$a[1]、a[2]、...a[n]$,表示每个果树节点的果实重量。 接下来 $n - 1$ 行,每行包含两个正整数,表示果树上的边。 最后 $Q$ 行,每行包含一个正整数 $X$,请你求出以 $X$ 为根的子树中所有节点的果实重量值所构成集合 $S$ 的 “空洞数”。 ### 输出格式 输出共 $Q$ 行,每行包含一个整数,表示对应子树的“空洞数”。 ### 样例输入 ```text 6 3 1 1 3 4 3 7 1 2 1 5 2 6 2 3 5 4 3 1 4 ``` ### 样例输出 ```text 1 2 1 ``` ### 样例说明 ![图片描述](https://doc.shiyanlou.com/courses/16473/1460991/951ff5997140375f8b1ab702c0e032ab-0/wm) 对于第 1 个解答,3 是最左下角的树节点,自己本身数值为 3 ,没有其他根节点,所以空洞数为 1。 对于第 2 个解答,1 是顶部节点,可得果实重量集合 S = {1、1、3、3、7、4},所以空洞数为 2。 对于第 3 个解答,4 是最右下角的树节点,自己本身数值为 4 ,没有其他根节点,所以空洞数为 1。 ### 评测数据规模 对于所有评测数据,$1 \lt N、Q \lt 100$,$0 \lt a[i] \lt 100$。
查看答案
赣ICP备20007335号-2