luogu#P9988. [Ynoi2079] 2stmo

[Ynoi2079] 2stmo

题目描述

给定一棵 nn 个顶点的有根树,顶点编号为 1,,n1,\dots,n11 为根,f2,,fnf_2,\dots,f_n 依次表示 2,,n2,\dots,n 的父亲。

给定 mm 对整数 a1,b1,,am,nma_1,b_1,\dots,a_m,n_m ,你需要构造一个 1,,m1,\dots,m 的排列 p1,,pmp_1,\dots,p_m ,满足这个排列的代价不超过 4×1094\times 10^9

排列的代价定义为:

$|S(a_{p_1})|+|S(b_{p_1})|+\sum\limits_{i=2}^m |S(a_{p_{i-1}})\oplus S(a_{p_i})|+|S(b_{p_{i-1}})\oplus S(b_{p_i})|$

其中 S(x)S(x) 是以 xx 为根的子树中的顶点构成的集合,A|A| 是集合 AA 的元素个数,ABA\oplus B 是集合 A,BA,B 的对称差(即在 A,BA,B 中恰好出现一次的元素构成的集合)。

输入格式

第一行两个整数 n,mn,m

第二行 n1n-1 个整数 f2,,fnf_2,\dots,f_n

接下来 mm 行,每行两个整数表示 ai,bia_i,b_ii=1,,mi=1,\dots,m

输出格式

输出 mm 行,每行一个整数,依次表示 p1,,pmp_1,\dots,p_m

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

提示

Idea:nzhtl1477,Solution:ccz181078,Code:ccz181078,Data:ccz181078

对于 25%25\% 的数据,满足 n,m104n,m\le 10^4

对于 50%50\% 的数据,n,m2×105n,m\le 2\times 10^5

对于 75%75\% 的数据,n,m5×105n,m\le 5\times 10^5

对于 100%100\% 的数据,满足 1n,m1061\le n,m\le 10^61fii11\le f_i\le i-11ai,bin1\le a_i,b_i\le n