#P1188. 树(tree)

树(tree)

题目描述

小王喜欢数据结构,尤其是唱歌。

小王有一棵 nn 个点的树,点从 11nn 编号,根是 11,点 ii 的父亲是 fif_i。每个点的 儿子按编号从小到大排序。每个有儿子的点有一个指针,初始指向第一个儿子。

接下来小王进行 mm 次巡演,每次他从根出发,然后不停沿着所在点的指针走向一 个儿子,直到到达一个叶子。每走过一个点,这个点的指针就改为指向下一个儿子,如 果这已经是最后一个儿子则指向第一个儿子。

请你求出小王的每次巡演结束于哪个叶子。

输入格式

第一行包含两个正整数 n,mn, m , 分别表示树的点数和巡演的次数。

第二行包含 n1n − 1 个正整数 f2,...,fnf_2, ..., f_n

输出格式

mm 行,第 ii 行一个数,表示第 ii 次巡演结束的叶子的编号。

样例输入输出

10 10 
1 2 2 1 2 4 3 2 8
5
4
7
10
5
9
7
4
5
10

样例 2

见附件下的 tree/tree2.intree/tree2.ans

说明/提示

【样例 #1 解释】

树的形态如图所示:

img

初始每个有儿子的点的指针为:11 指向 2222 指向 3333 指向 8844 指向 7788 指向 1010

11 次巡演,小王依次经过点 1,2,3,8,101, 2, 3, 8, 10,这使得 11 的指针指向 5522 的指针指向 44,其它点的指针不变。

22 次巡演,小王依次经过点 1,51, 5,这使得 11 的指针指向 22,其它点的指针不变。

33 次巡演,小王依次经过点 1,2,4,71, 2, 4, 7,这使得 11 的指针指向 5522 的指针指向 66, 其它点的指针不变。

【数据范围及约束】

对于所有数据,保证 1n,m3×105,fi<i1 \le n, m \le 3 \times 10^5 , f_i < i

测试点编号 n,mn,m \le 特殊性质
11 10001000
22 3×1053 \times 10^5 fif_i1,...,i11, ..., i − 1 中等概率随机生成
3,43,4

【题目来源】

2023 青岛市程序设计竞赛 高中组 T1 tree