编程题
### 问题描述 小蓝有一棵包含 $n$ 个节点的树。他希望对这棵树上的每个节点进行染色,每个节点可以被染成黑色或白色。然而,他有一个特殊的要求,除叶子节点外,对于第 $i$ 个节点至少要有 $k_i$ 个黑色的子节点。 小蓝想知道,满足这个要求的染色方法有多少种。请你帮助他解决这个问题,由于答案可能很大,请对 $998244353$ 取模。 ### 输入格式 第一行输入一个整数 $n$,表示树的节点个数。 接下来一行,输入 $n$ 个整数 $k_i$,代表每个节点最小的黑色节点数量。 接下来 $n-1$ 行每行输入两个整数 $v_i,u_i$,代表 $v_i$ 有一条边指向 $u_i$。 ### 输出格式 输出一个整数,代表可以染色的方案。答案对 $998244353$ 取模。 ### 样例输入 ``` 3 1 0 0 1 2 1 3 ``` ### 样例输出 ``` 6 ``` ### 说明 我们用 $0$ 表示白色,$1$ 代表黑色。 那么方案如下 $6$ 种:$\lbrace 0,1,0\rbrace,\lbrace 0,1,1\rbrace,\lbrace 0,0,1\rbrace,\lbrace 1,1,0\rbrace,\lbrace 1,1,1\rbrace,\lbrace 1,0,1\rbrace$。 ### 评测数据范围 $0 \le k_i \le n, 1 \le n \le 10^5$。 保证 $k_i$ 小于等于 $i$ 的子节点数量。
查看答案
赣ICP备20007335号-2