#CF2079C. 梦想无害

    ID: 6381 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>树结构数据结构优先队列贪心树上最近公共祖先

梦想无害

梦想无害

  • 输入文件:标准输入
  • 输出文件:标准输出
  • 时间限制:3 秒
  • 内存限制:256 MB

题目描述

在婚介机构 M.,即将进行大规模裁员。所有员工都在计算着,如果形势对他们有利,他们还需要多少天才能成为公司负责人,而不是继续工作。

公司的组织结构是一棵有根树,根节点为员工 11。员工 vv 的直接上级是编号为 pvp_v 的员工。
员工 vv 的能力等级由参数 svs_v 表示。所有员工的能力等级互不相同。能力等级越高,员工对公司越有用。注意,由于招聘过程不透明,可能出现能力较低的员工是能力较高员工的上级的情况。

在重大人事调整中,每天都会解雇当前公司的 CEO(即树根)。如果公司中还有员工,则能力最强的直接下属会接替 CEO 职位。之后,原 CEO 的其他下属会成为新 CEO 的下属。具体过程可参考示例中的说明。

每个员工都很容易计算出自己需要多少天才能成为 CEO。但很多人不愿意等那么久,因为他们只能当一天的 CEO!为了加快这一进程,他们准备“取消”一名同事。被“取消”的员工的能力等级降为 00,因为没人愿意再和他们共事。

你需要回答 qq 个查询。在第 kk 个查询中,员工 vkv_k 想知道:如果他们可以恰好取消一名员工,那么他们成为 CEO 所需的最少天数是多少。

所有查询都是独立的假设情况,实际员工能力等级在所有查询中保持不变。


输入格式

第一行包含两个整数 n,qn, q2n3000002 \le n \le 300\,0001qn1 \le q \le n)——员工数量和查询数量。

第二行包含 n1n-1 个整数 p2,p3,,pnp_2, p_3, \ldots, p_n1pi<i1 \le p_i < i)——员工 22nn 的直接上级编号。

第三行包含 nn 个整数 s1,s2,,sns_1, s_2, \ldots, s_n1sin1 \le s_i \le n)——员工的能力等级。保证所有 sis_i 互不相同。

第四行包含 qq 个整数 v1,v2,,vqv_1, v_2, \ldots, v_q1vin1 \le v_i \le n)——晋升查询的员工编号。保证所有 viv_i 互不相同。


输出格式

输出 qq 个整数,用空格分隔——对于查询 v1,v2,,vqv_1, v_2, \ldots, v_q,输出对应的最少天数。


示例

标准输入

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

标准输出

1 3 0 2

示例解释

在测试样例中:

  • 员工 5 可以在 11 天后成为负责人。只需“取消”员工 2 即可。公司结构变化如下:
初始结构:          第 1 天:
    1                   5
    |                   |
    2                   2
   / \                  |
  3   4                 3
  |
  5
  • 员工 3 可以在 33 天后成为负责人。只需“取消”员工 5 或员工 4。若取消员工 5,结构变化如下:
初始结构:  第 1 天:   第 2 天:   第 3 天:
    1          2           4           3
    |          |           |           |
    2          3           3           5
   / \          \           \
  3   4          5           5
  |
  5
  • 员工 1 已经是公司负责人,对应查询答案为 00

  • 员工 4 可以在 22 天后成为负责人。类似上例,取消员工 5 即可。


评分规则

测试数据分为 99 组。只有通过某组的所有测试以及它所依赖的前若干组的所有测试,才能获得该组分数。
注意:通过示例测试不是某些组的前置条件。
“离线评测”表示该组的结果仅在比赛结束后才能看到。

组号 分值 额外限制 依赖组 备注
0 示例
1 10 pi=1p_i = 1pi=i1p_i = i-1,且最多两个 ii 满足 pi=1p_i = 1
2 6 1 pi=1p_i = 1pi=i1p_i = i-1
3 8 n50n \le 50q50q \le 50 0
4 13 n1000n \le 1000q1000q \le 1000 0, 3
5 11 –,q100q \le 100
6 9 pi=i/2p_i = \lfloor i/2 \rfloor(完全二叉树)
7 11 0, 3, 6 任意员工的上级集合大小不超过 100100
8 14 对所有 i>1i > 1si>spis_i > s_{p_i}(能力随深度递减)
9 18 0–8 离线评测

注:员工的上级集合包括其直接上级以及所有上级的上级。