QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 512 MB 總分: 110

#8127. 随机道路

统计

Vito 居住在一个拥有 $n$ 个公园的城市中,公园编号从 $1$ 到 $n$。这些公园通过 $n-1$ 条道路连接,任意两个公园之间都存在路径。每个公园都有一定的美观度,第 $i$ 个公园的美观度为 $v_i$。

昨晚,Vito 决定在城市中漫步。他每到达一个公园,就会以相等的概率随机选择一条道路,并前往该道路连接的另一个公园。但在他开始旅程之前,他从摩天大楼的窗户向外看,发现每条道路上要么有一条蓝蛇,要么有一条红蛇。蓝蛇会攻击所有从编号较小的公园前往编号较大的公园的人,而红蛇会攻击所有从编号较大的公园前往编号较小的公园的人。由于 Vito 不想被蛇攻击,他决定改变计划:在选择随机道路时,只考虑那些他不会被蛇攻击的道路。由于他喜欢长途漫步,只要还有至少一条他可以安全通过的道路,他就不会停止旅程。

当 Vito 走下摩天大楼的楼梯时,他完全忘记了哪条路上有红蛇或蓝蛇。因此他感到好奇:如果每条道路上出现蓝蛇或红蛇的概率相等,那么从第 $i$ 个公园出发,他旅程的期望美观度是多少?

路径的美观度定义为该旅程中访问过的所有公园的美观度之和。旅程的期望美观度定义为:对于每一条可能的路径,该路径的美观度与 Vito 选择该路径的概率的乘积之和。

输入格式

第一行包含一个整数 $n$ ($2 \le n \le 10^6$),表示公园的数量。

第二行包含 $n-1$ 个整数 $p_i$ ($1 \le p_i < i$),表示第 $(i+1)$ 个公园与第 $p_i$ 个公园之间有一条道路。

第三行包含 $n$ 个整数 $v_i$ ($0 \le v_i \le 10^6$),表示第 $i$ 个公园的美观度。

输出格式

如果从第 $i$ 个公园出发的旅程的期望美观度为 $\frac{a}{b}$($a, b$ 为整数),则在第 $i$ 行输出 $a \cdot b^{-1} \pmod{10^9 + 7}$,其中 $b^{-1}$ 是 $b$ 在模 $10^9 + 7$ 下的乘法逆元。

子任务

子任务 分值 数据范围
1 10 $n \le 10$
2 30 $n \le 1000$
3 30 在序列 $p_i$ 中,没有数值出现超过 2 次
4 40 无附加限制

如果你的程序在某个测试点上第一行输出正确,但后续行输出错误,则该测试点将获得 50% 的分数。

子任务的得分等于该子任务中某个测试点所获得的最低分数。

样例

输入 1

2
1
2 1

输出 1

500000006
2

说明 1

从第一个公园出发的旅程的期望美观度为 $2.5 \pmod{10^9 + 7} = \frac{5}{2} \pmod{10^9 + 7} = 5 \cdot 2^{-1} \pmod{10^9 + 7} = 5 \cdot 500000004 \pmod{10^9 + 7} = 500000006 \pmod{10^9 + 7}$,从第二个公园出发的期望美观度为 $2$。

输入 2

3
1 1
8 8 8

输出 2

14
14
14

说明 2

两条蛇都是红色的概率为 $\frac{1}{4}$,在这种情况下,如果 Vito 从第一个公园出发,他会随机选择他要走的道路。

输入 3

11
1 1 1 2 3 4 1 2 6 2
1 1000 5 3 18 200 8 9 0 2 2

输出 3

968750272
610352580
450521029
536458466
199219275
662760680
190972315
90277951
824219264
941840425
532552597

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.