QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 256 MB مجموع النقاط: 100 قابلة للهجوم ✓

#13281. 做梦无害

الإحصائيات

在 M 婚介所,大规模裁员计划正在进行中。所有的员工都在忙着计算日子,希望在事态向有利方向发展时,他们能直接接管公司,而不是继续工作。

公司的结构是一棵以编号为 1 的顶点为根的悬挂树。员工 $v$ 的直接上级是编号为 $p_v$ 的员工。员工 $v$ 的能力水平由参数 $s_v$ 定义。所有员工的该参数各不相同。能力水平越高,员工对公司就越有用。请注意,由于招聘过程不透明,可能会出现能力较低的员工是能力较高员工的上级的情况。

由于重大的人员重组,每天,处于工作层级根部的 CEO 都会被解雇。如果公司里还有剩余员工,能力最强的直接下属将接替他们的位置。此后,前任主管的其他下属将成为新任主管的下属。有关该条件的详细理解,请参阅样例说明。

每位员工都很容易计算出他们成为 CEO 需要多少天。许多人并不想等那么久,因为他们可能只会当一天的领导!为了加快这个过程,他们准备“取消”一位同事。被“取消”的员工能力水平降为 0,因为没有人愿意再与他们互动。

你需要回答 $q$ 个询问。在第 $k$ 个询问中,员工 $v_k$ 想知道,如果他们愿意“取消”恰好一名员工,他们接管公司所需的最少天数。所有询问都是假设且独立的,且所有员工的真实能力水平在所有询问中保持不变。

输入格式

第一行包含两个整数 $n, q$ ($2 \le n \le 300\,000, 1 \le q \le n$),分别表示员工人数和询问次数。

第二行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$ ($1 \le p_i < i$),表示编号为 2 到 $n$ 的员工的直接上级。

第三行包含 $n$ 个整数 $s_1, s_2, \dots, s_n$ ($1 \le s_i \le n$),表示员工的能力水平。保证所有能力水平各不相同。

第四行包含 $q$ 个整数 $v_1, v_2, \dots, v_q$ ($1 \le v_i \le n$),表示晋升询问。保证所有 $v_i$ 各不相同。

输出格式

输出 $q$ 个由空格分隔的整数,表示员工 $v_1, v_2, \dots, v_q$ 成为主管所需的最少天数。

样例

输入 1

5 4
1 2 2 1
3 5 1 2 4
5 3 1 4

输出 1

1 3 0 2

说明

在测试样例中,第五位员工可以在 1 天内接管公司。为此,只需“取消”第二位员工即可。公司结构将发生如下变化:

初始结构与第 1 天

第三位员工可以在 3 天内接管公司。为此,只需“取消”第五位或第四位员工即可。如果取消第五位员工,公司结构将发生如下变化:

初始结构、第 1 天、第 2 天与第 3 天

第一位员工已经是公司主管,因此对应询问的答案为 0。

第四位员工可以在两天内成为公司主管。与上一个例子类似,只需“取消”第五位员工即可。

子任务

子任务 分值 额外约束 所需子任务 说明
0 0 样例
1 10 $p_i = 1$ 或 $p_i = i - 1$,且对于不超过两个 $i$,$p_i = 1$
2 6 1 $p_i = 1$ 或 $p_i = i - 1$
3 8 $n \le 50, q \le 50$ 0
4 13 $n \le 1000, q \le 1000$ 0, 3
5 11 $q \le 100$ 0, 3
6 9 $p_i = \lfloor \frac{i}{2} \rfloor$
7 11 0, 3, 6 任何员工的“上级*”数量不超过 100
8 14 对于所有 $i > 1$,$s_i > s_{p_i}$
9 18 0–8 离线评测

员工的“上级*”指其直接上级以及其直接上级的所有上级组成的集合。

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.