#5672. CSES1688 公司查询 II

0

CSES1688 公司查询 II

#CS1688. 公司查询 II

公司查询 II

题目背景

翻译自 CSES-1688 题。

题目描述

一个公司有 n 名员工,员工之间形成了一个树形层级结构,每个员工都有一个上级,除了总经理。

你的任务是处理 q 个查询,每个查询的形式是:员工 a 和员工 b 的最低共同上级是谁?

输入格式

第一行包含两个整数 n 和 q:分别表示员工的数量和查询的数量。员工编号为 1,2,…,n1,2,…,n1,2,…,n,其中员工 1 是总经理。

第二行包含 n−1n−1n−1 个整数 e2,e3,…,ene_2,e_3,…,e_ne2​,e3​,…,en​:表示员工 2,3,…,n2,3,…,n2,3,…,n 的上级,其中 eie_iei​ 表示员工 i 的上级是员工 eie_iei​。

接下来的 q 行,每行包含两个整数 a 和 b:表示查询员工 a 和员工 b 的最低共同上级是谁。

输出格式

对于每个查询,输出员工 a 和员工 b 的最低共同上级的编号。

样例

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

说明/提示

1n,q21051 \leq n,q \leq 2 \cdot 10^5

eii11eii11eii≤ei≤i−11 \leq e_i \leq i - 11≤ei​≤i−

1a,bn1 \leq a,b \leq n