最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 凯和雪花

    正文概述 陈老师   2026-01-20 15:15:25  

    题目描述

    输入一棵树,判断每一棵子树的重心是哪一个节点。

    输入格式

    输入的第一行包含两个整数 nnqq2n300000,  1q3000002 \leq n \leq 300000,\; 1 \leq q \leq 300000)分别表示初始树的大小和查询的数量。

    第二行包含 n1n-1 个整数 p2,p3,,pnp_2, p_3, \dots, p_n1pin1 \leq p_i \leq n)——表示编号为 22nn 的每个节点的父亲节点编号。节点 11 是树的根。保证所给的 pip_i 构成一棵合法的树。

    接下来的 qq 行中,每行包含一个整数 viv_i1vin1 \leq v_i \leq n)——表示一个节点的编号,定义了一棵以该节点为根的子树,我们需要找到这棵子树的 重心

    输出格式

    对于每个查询,输出对应子树的一个重心的编号。
    如果有多个符合条件的节点,可以输出其中任意一个。
    保证每一棵子树至少存在一个重心。

    样例

    7 4
    1 1 3 3 5 3
    1
    2
    3
    5
    
    3
    2
    3
    6
    

    提示

    数据范围

    • 对于100%100\%的数据,$2 \leq n \leq 300000, 1 \leq q \leq 300000, 1 \leq p_i \leq n, 1 \leq v_i \leq n$
    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 凯和雪花