编程题
### **问题描述** 小蓝是一位资深的植物学家,他专注于研究植物的相互关系和生命力。在他所照料的森林中,每个品种的植物都拥有独特的生命力,彼此之间互不相同。 植物的生命力会影响其下级品种的生长。具体地,如果下级品种的生命力数值无法被上级品种的生命力数值整除,或者下级品种的生命力数值大于上级品种的生命力数值时,它们便会受到压制,无法茁壮成长。 为了深入研究和定量分析这一现象,小蓝构建了一种模型。他将森林中的植物品种关系抽象成了一棵包含 $n$ 个节点的树,节点的编号从 $1$ 到 $n$,代表不同的植物品种。其中,树的根节点编号为 $s$,节点 $i$($1\leq i \leq n$) 的生命力表示为 $a_i$。 现在,小蓝想要对于每个节点 $i$,统计其子树(以 $i$ 为根的子树)中同时满足以下两个条件的子节点的数量: 1. 子节点的生命力小于节点 $i$ 的生命力 $a_i$。 2. 子节点的生命力无法被节点 $i$ 的生命力 $a_i$ 整除。 请你帮助小蓝计算出所有子树中满足条件的节点个数的总和。 ### **输入格式** 第一行包含两个整数 $n$ 和 $s$,分别代表节点的数量和根节点的编号。 第二行包含 $n$ 个互不相同的整数 $a_1, a_2, \ldots, a_n$,其中 $a_i$ 表示编号为 $i$ 的节点的生命力。 接下来的 $n - 1$ 行,每行包含两个整数 $u$ 和 $v$,表示编号为 $u$ 和 $v$ 的节点之间存在一条边。 ### **输出格式** 输出一个整数,表示所有子树中满足条件的节点个数的总和。 ### **样例输入** ```text 6 1 6 5 3 2 4 1 1 2 1 3 2 4 2 5 3 6 ``` ### **样例输出** ```text 4 ``` ### **样例说明** 在给定的样例中,树的结构如下: ```text 1 / \ 2 3 / \ \ 4 5 6 ``` 在以 $1$ 为根的子树中,满足条件的节点有 $2,5$,个数为 $2$。 在以 $2$ 为根的子树中,满足条件的节点有 $4,5$,个数为 $2$。 在以 $3\sim 6$ 为根的子树中,没有满足条件的节点,个数均为 $0$。 因此答案为 $2+2 = 4$。 ### **评测用例规模与约定** 对于 $30\\%$ 的评测用例,$1\leq n \leq 2\times 10^3$,$1\leq s, u, v, a_i \leq n$,$a_1,a_2,\dots, a_n$ 互不相同。 对于所有的评测用例,$1\leq n \leq 2\times 10^5$,$1\leq s, u, v, a_i \leq n$,$a_1,a_2,\dots, a_n$ 互不相同。
查看答案
赣ICP备20007335号-2