P10013 [集训队互测 2023] Tree Topological Order Counting
题目描述
给定一颗 $n$ 个点的有根树,$1$ 是根,记 $u$ 的父亲是 $fa_u$。另给出一长度为 $n$ 的权值序列 $b$。
称一个长度为 $n$ 的排列 $a$ 为这颗树的合法拓扑序,当且仅当 $\forall 2 \le u \le n,a_u > a_{fa_u}$。
对每个点 $u$,定义 $f(u)$ 为,在所有这颗树的合法拓扑序中,$b_{a_u}$ 之和。
现在对 $1 \le u \le n$,求 $f(u) \bmod 10^9+7$。
输入格式
第一行一个整数 $n$ 表示树的点数。
第二行 $n-1$ 个整数,第 $i$ 个表示 $fa_{i+1}$,描述树的结构。
第三行 $n$ 个整数,第 $i$ 个表示 $b_i$,描述权值序列。
输出格式
一行 $n$ 个整数,第 $i$ 个表示 $f(i) \bmod 10^9+7$。
说明/提示
| Subtask | $n \le$ | 特殊限制 | 分值 |
| :-----: | :-----: | :------: | :--: |
| $1$ | $10$ | 无 | $5$ |
| $2$ | $20$ | 无 | $10$ |
| $3$ | $100$ | 无 | $15$ |
| $4$ | $350$ | 无 | $15$ |
| $5$ | $3000$ | A | $15$ |
| $6$ | $3000$ | 无 | $20$ |
| $7$ | $5000$ | 无 | $20$ |
特殊限制 A:$\forall 1 \le i \le n,b_i=i$。
对于所有数据:$2 \le n \le 5000$,$1 \le fa_i < i$,$0 \le b_i < 10^9+7$。