QOJ.ac

QOJ

Límite de tiempo: 3 s Límite de memoria: 256 MB Puntuación total: 100

#10070. 糖果

Estadísticas

Sandu 从高中毕业,决定追求他作为糖果推销员的梦想。

摩尔多瓦的巴尔蒂市有 $N$ 个市场,它们之间由街道相连。这个市场体系结构很有趣:任意两个市场之间都可以通过若干条街道互相到达,且总共有 $N-1$ 条街道。此外,Sandu 目前位于市场 1。因此,这些市场构成了一个以市场 1 为根的有根树结构。

此外,每个市场 $i$ 都有一个韧性值 $t_i$ 和一个学习值 $l_i$。初始时,每个市场的学习值为 0,Sandu 的销售技能等级为 0。

当 Sandu 访问市场 $i$ 时,他的销售技能等级会增加 $l_i$。如果 Sandu 的销售技能等级至少达到 $t_i$(该市场的韧性值),则他在市场 $i$ 取得成功。注意,无论 Sandu 是否成功,他的销售技能等级都会在进入市场 $i$ 后立即增加。这意味着他的销售技能等级是在尝试在市场内进行任何操作之前增加的。

此外,由于巴尔蒂是一个非常繁忙的城市,在接下来的 $Q$ 天里,每天都会发生一个事件。在第 $j$ 天,会发生事件 $j$。一个事件由两个正整数 $u_j$ 和 $x_j$ 描述,意味着在第 $j$ 天,市场 $u_j$ 会发生一个事件,该市场的学习值将永久增加 $x_j$。换句话说,事件 $j$ 意味着在第 $j$ 天,学习值将增加 $x_j$($l_{u_j} := l_{u_j} + x_j$)。

Sandu 计划访问一些市场并在其中销售糖果。他会选择某个市场 $k$,并按顺序访问从市场 1 到市场 $k$ 路径上的所有市场。Sandu 希望在尽可能多的市场中取得成功。无论是否成功,他都会继续前往市场 $k$ 的旅程。此外,每天 Sandu 都从市场 1 出发,他的销售技能等级会重置,即每天开始时销售技能等级为 0。

对于每一天 $j$,请帮助 Sandu 找到他能取得成功的最大市场数量,前提是他能为当天最优地选择终点市场的位置。

初始市场体系结构图

输入格式

第一行包含两个整数 $N$ 和 $Q$ ($1 \le N, Q \le 5 \cdot 10^5$)。

第二行包含 $N-1$ 个整数,表示市场的有根树结构:$p_2, \dots, p_N$,表示存在一条连接 $p_i$ 和 $i$ 的边,且 $p_i$ 是 $i$ 的父节点。

此外,对于每个 $i$,始终满足 $1 \le p_i < i$。

第三行包含 $N$ 个整数:$t_1, t_2, \dots, t_N$ ($0 \le t_i \le 10^9$),表示给定市场的韧性值。

接下来 $Q$ 行,表示在第 $j = 1, 2, \dots, Q$ 天发生的事件。

第 $j$ 行包含两个整数 $u_j$ 和 $x_j$,描述第 $j$ 天的事件 ($1 \le u_j \le N, 1 \le x_j \le 10^9$)。

输出格式

输出 $Q$ 行,第 $j$ 行应输出第 $j$ 天的答案。

样例

输入格式 1

12 5
1 1 3 3 1 6 7 1 9 10 11
1 2 6 3 5 4 6 5 2 3 4 5
1 1
1 1
3 2
6 3
9 6

输出格式 1

1
2
2
3
5

说明

第一天后的市场体系结构

第三天后的市场体系结构

第四天后的市场体系结构

第五天后的市场体系结构

约束与评分

  • $1 \le N, Q \le 5 \cdot 10^5$。
  • 始终满足 $1 \le p_i < i$。
  • 对于所有 $i$ ($1 \le i \le N$),有 $0 \le t_i \le 10^9$。
  • 对于所有 $j$ ($1 \le j \le Q$),有 $1 \le u_j \le N$。
  • 对于所有 $j$ ($1 \le j \le Q$),有 $1 \le x_j \le 10^9$。
子任务 分值 限制
1 7 $p_i = 1$ 对于 $1 < i \le N$,且 $N, Q \le 2000$
2 8 $N, Q \le 2000$,树结构满足 $p_i = i - 1$ 对于所有 $i$
3 17 树结构满足 $p_i = i - 1$ 对于 $1 < i \le N$
4 12 $N, Q \le 2000$
5 21 所有事件中 $u_j = 1$
6 24 $N, Q \le 10^5$
7 11 无额外限制

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.