题目描述
小 C 有一棵 n 个结点的有根树,根是 1 号结点,且每个结点最多有两个子结点。
定义结点 x 的权值为:
1.若 x 没有子结点,那么它的权值会在输入里给出,保证这类点中每个结点的权值互不相同。
2.若 x 有子结点,那么它的权值有 px 的概率是它的子结点的权值的最大值,有 1−px 的概率是它的子结点的权值的最小值。
现在小 C 想知道,假设 1 号结点的权值有 m 种可能性,权值第 i 小的可能性的权值是 Vi,它的概率为 Di(Di>0),求:
i=1∑mi⋅Vi⋅Di2
你需要输出答案对 998244353 取模的值。
输入格式
第一行一个正整数 n;
第二行 n 个整数,第 i 个整数表示第 i 个结点的父亲的编号,其中第 1 个结点的父亲为 0;
第三行 n 个整数,若第 i 个结点没有子结点,则第 i 个数为它的权值,否则第 i 个数为 pi⋅10000,保证 pi⋅10000 是个正整数。
输出格式
输出答案。
3
0 1 1
5000 1 2
748683266
提示
样例解释
1号结点的权值有 21 的概率是 1,有 21 的概率是 2,所以答案是 45。
数据范围
- 对于 10% 的数据,有 1≤n≤20;
- 对于 20% 的数据,有 1≤n≤400;
- 对于 40% 的数据,有 1≤n≤5000;
- 对于 60% 的数据,有 1≤n≤105;
- 另有 10% 的数据保证树的形态随机;
- 对于 100% 的数据,有 1≤n≤3×105,1≤wi≤109。
对于所有数据,满足 0<pi⋅10000<10000,所以易证明所有叶子的权值都有概率被根取到。