QOJ.ac

QOJ

実行時間制限: 3 s メモリ制限: 256 MB 満点: 100

#152. Arboras

統計

法师 Roxanne 在研究了无数个小时的古代奥术后,决定去当地的一家咖啡馆放松一下。当她到达那家老咖啡馆时,她看到墙上有一种奇怪的结构,称为 arboras(即树)。形式上,它是一个包含 $N$ 个顶点的集合,顶点编号为从 $0$ 开始的连续非负整数,其中顶点 $0$ 是根,所有其他顶点都有一个唯一的父节点(顶点 $v$ 的父节点为 $p_v$)。由于这家咖啡馆是由法师和程序员共同经营的,所以这棵树被绘制成根在顶部的形式。

法师对这种结构很感兴趣,她决定将一些魔法咖啡倒入其中一个顶点。如果咖啡被倒入顶点 $u$,它就会向下流动,穿过以 $u$ 为根的子树。由于这是魔法咖啡,它不会随机流动:它会占据以 $u$ 为根的子树中,且经过顶点 $u$ 的最长链。倒入咖啡时损失的咖啡量与咖啡所占据的链的长度成正比。Roxanne 将此量记为 $r_u$。注意,树中各条边的长度可能不同。

Roxanne 对如果她将咖啡倒入树中所有顶点所损失的咖啡总量感兴趣,即树中所有顶点 $u$ 的 $r_u$ 之和。起初计算这个并不困难,但随后程序员们决定挑战她,并 $Q$ 次增加了某些边的长度。你能帮助 Roxanne 计算出在初始状态以及每次 $Q$ 次更新后,如果将咖啡倒入所有顶点,咖啡所占据的所有链的总长度吗?注意:她需要的结果是对 $10^9 + 7$ 取模后的值。

输入格式

第一行包含整数 $N$,即顶点数量。 第二行包含 $N - 1$ 个整数:$p_1, p_2, \dots, p_{N-1}$,其中 $p_v$ 是顶点 $v$ 的父节点,顶点 $0$ 是根。 第三行包含 $N - 1$ 个整数:$d_1, d_2, \dots, d_{N-1}$,其中 $d_v$ 是顶点 $v$ 与其父节点 $p_v$ 之间边的长度。 第四行包含 $Q$,即更新次数。 接下来的 $Q$ 行,每行包含两个整数 $v_i$ 和 $add_i$,表示第 $i$ 次更新:顶点 $v_i$ 与其父节点 $p_{v_i}$ 之间边的长度增加了 $add_i$。

输出格式

输出 $Q + 1$ 行:第 $i + 1$ 行应输出第 $i$ 次更新后的答案。第一行应输出更新前的答案。 所有答案必须对 $10^9 + 7$ 取模。

数据范围

  • $1 \le N \le 100\,000$
  • $1 \le Q \le 100\,000$
  • 对于所有 $1 \le i \le N - 1$,$1 \le d_i \le 100\,000\,000$
  • $0 \le p_i < i$
  • 对于所有 $1 \le i \le Q$,$1 \le add_i \le 10^9$

子任务

子任务 1(11 分): $1 \le N \le 1\,000$ $1 \le Q \le 1\,000$

子任务 2(13 分): * 树的高度最多为 $50$。

子任务 3(31 分): 对于所有 $1 \le i \le N - 1$,$d_i = 100\,000\,000$ 对于所有 $1 \le i \le Q$,$add_i = 1$

子任务 4(45 分): * 无附加限制。

样例

样例输入 1

5
0 0 1 1
0 0 0 0
10
1 2
2 2
3 2
4 2
4 1
3 1
2 1
1 1
4 1000
2 1000

样例输出 1

0
2
4
8
10
12
13
14
15
2015
3015

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.