题目描述
给定一颗 n 个点的有根树,1 是根,记 u 的父亲是 fau。另给出一长度为 n 的权值序列 b。
称一个长度为 n 的排列 a 为这颗树的合法拓扑序,当且仅当 ∀2≤u≤n,au>afau。
对每个点 u,定义 f(u) 为,在所有这颗树的合法拓扑序中,bau 之和。
现在对 1≤u≤n,求 f(u)mod109+7。
输入格式
第一行一个整数 n 表示树的点数。
第二行 n−1 个整数,第 i 个表示 fai+1,描述树的结构。
第三行 n 个整数,第 i 个表示 bi,描述权值序列。
输出格式
一行 n 个整数,第 i 个表示 f(i)mod109+7。
5
1 1 3 2
3 5 4 4 1
18 27 27 15 15
5
1 1 3 1
1 2 3 4 5
12 42 32 52 42
提示
| Subtask |
n≤ |
特殊限制 |
分值 |
| 1 |
10 |
无 |
5 |
| 2 |
20 |
10 |
| 3 |
100 |
15 |
| 4 |
350 |
| 5 |
3000 |
A |
| 6 |
无 |
20 |
| 7 |
5000 |
特殊限制 A:∀1≤i≤n,bi=i。
对于所有数据:2≤n≤5000,1≤fai<i,0≤bi<109+7。