#L5355. 「OOI 2025 Day 1」梦想无害
「OOI 2025 Day 1」梦想无害
题目描述
题目译自 Open Olympiad in Informatics 2025 Day1 T3 「Мечтать не вредно / Dreaming is not harmful」。
公司组织结构是一棵以 1 号节点为根的树,员工 v 的直接上级为 p_v,能力水平为 s_v(所有 s_v 互不相同)。每天会解雇当前根节点(总经理),由其能力最高的直接下属接任,其他下属成为新根的下属。每位员工想知道:若“取消”恰好一位同事(使其能力变为 0),自己最少需要多少天成为总经理。q 个查询独立,每个查询针对员工 v_k,输出其最少所需天数。
输入格式
- 第一行:两个整数 n 和 q(2 ≤ n ≤ 300000,1 ≤ q ≤ n),分别表示员工数量和查询数量;
- 第二行:n-1 个整数 p_2, p_3, …, p_n(1 ≤ p_i < i),表示 2 到 n 号员工的直接上级;
- 第三行:n 个整数 s_1, s_2, …, s_n(1 ≤ s_i ≤ n),表示员工的能力水平(互不相同);
- 第四行:q 个整数 v_1, v_2, …, v_q(1 ≤ v_i ≤ n),表示查询的员工编号(互不相同)。
输出格式
输出 q 个整数,用空格分隔,分别对应每个查询员工的最少所需天数。
样例
输入
5 4
1 2 2 1
3 5 1 2 4
5 3 1 4
输出
1 3 0 2
在样例中,编号为 5 的员工可以在 1 天内成为总经理。为此,只需「取消」编号为 2 的员工。公司结构的变化如下:

编号为 3 的员工可以在 3 天内成为总经理。为此,只需「取消」编号为 5 或 4 的员工。如果“取消”编号为 5 的员工,公司结构的变化如下:

编号为 1 的员工已经是公司负责人,因此对于相应的查询,答案为 0。
编号为 4 的员工可以在 2 天内成为总经理。类似上述示例,只需「取消」编号为 5 的员工即可。