#B0183. 跃升祖先

跃升祖先

题目描述

给定一棵有根树,根节点为 11

对于每个节点 uu,定义它的第 kk 级祖先为:从 uu 开始,沿着父边连续向上走 kk 次后到达的节点。

例如:

  • 00 级祖先就是它自己;
  • 11 级祖先是它的父节点;
  • 如果向上走的过程中已经越过根节点,则答案记为 00

现在有若干次询问,每次给出一个节点 uu 和一个非负整数 kk,请你输出 uu 的第 kk 级祖先。

输入格式

第一行包含两个整数 nnqq,分别表示树的节点数和询问次数。

第二行包含 n1n-1 个整数,其中第 i1i-1 个整数表示节点 ii 的父节点,适用于所有 2in2 \le i \le n

接下来 qq 行,每行包含两个整数 uukk,表示一次询问。

数据范围:

  • 1n,q2×1051 \le n, q \le 2 \times 10^5
  • 对于所有 2in2 \le i \le n,都有 1fai<i1 \le \mathrm{fa}_i < i
  • 1un1 \le u \le n
  • 0k10180 \le k \le 10^{18}

输出格式

对于每次询问,输出一行一个整数,表示答案。

7 6
1 1 2 2 3 3
4 1
4 2
4 3
7 2
1 0
1 1
2
1
0
1
1
0