#P7103. 「C.E.L.U-01」族谱树

    ID: 5713 Type: RemoteJudge 1500ms 384MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>树形数据结构O2优化树形 dp

「C.E.L.U-01」族谱树

题目背景

小 Soup 正在翻看他们家的族谱,他们家的族谱构成了一棵树。小 Soup 发现,由于年代久远,他们家族中的一些分支已经绝迹,他对此十分好奇。

题目描述

小 Soup 给你他们家的族谱树,想要问你在这棵树中所有kk 层的孩子(树中深度为 kk 的点,根节点的深度为 11 ,根节点编号为 11 )的 最近公共祖先\text{最近公共祖先} 是谁。

输入格式

第一行两个整数 n,mn,m
第二行 nn 个整数,其中第 ii 个整数为 fif_i,表示 ii 的父亲为 fif_i,请注意,11fif_i 固定为 00
接下来 mm 行,每行一个整数 kk,代表小 Soup 的询问。

输出格式

对于每个小 Soup 的询问,输出一个整数,即所有深度为 kk 的点的 最近公共祖先\text{最近公共祖先}

8 3
0 1 1 2 2 3 4 5
2
1
4

1
1
2
11 4
0 1 1 3 3 3 4 5 8 8 10
3
4
5
6
3
3
8
11

提示

样例解释1:

样例解释2:

数据保证存在深度为 kk 的点

$\begin{array}{|c|c|c|}数据编号&n,m&特殊性质\\1&\le10&\diagdown\\2&\le100&\diagdown\\3\sim4&\le10^3&\diagdown\\5&\le3\times10^5&树为一条链\\6&\le3\times10^5&\diagdown\\7\sim10&\le3\times10^6&\diagdown\\11\sim12&\le5\times10^6&\diagdown\end{array}$

对于 100%100\% 的数据,n5×106,mnn\le5\times10^6,m\le n

温馨提示:此题较卡常,请注意大常数带来的影响以及时空复杂度。如果你被卡常了,可以试试使用快速读入。