P9988 [Ynoi2079] 2stmo

题目描述

给定一棵 $n$ 个顶点的有根树,顶点编号为 $1,\dots,n$ ,$1$ 为根,$f_2,\dots,f_n$ 依次表示 $2,\dots,n$ 的父亲。 给定 $m$ 对整数 $a_1,b_1,\dots,a_m,b_m$ ,你需要构造一个 $1,\dots,m$ 的排列 $p_1,\dots,p_m$ ,满足这个排列的代价不超过 $4\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)$ 是以 $x$ 为根的子树中的顶点构成的集合,$|A|$ 是集合 $A$ 的元素个数,$A\oplus B$ 是集合 $A,B$ 的对称差(即在 $A,B$ 中恰好出现一次的元素构成的集合)。

输入格式

第一行两个整数 $n,m$ ; 第二行 $n-1$ 个整数 $f_2,\dots,f_n$ ; 接下来 $m$ 行,每行两个整数表示 $a_i,b_i$ ,$i=1,\dots,m$ 。

输出格式

输出 $m$ 行,每行一个整数,依次表示 $p_1,\dots,p_m$ 。

说明/提示

Idea:nzhtl1477,Solution:ccz181078,Code:ccz181078,Data:ccz181078 对于 $25\%$ 的数据,满足 $n,m\le 10^4$。 对于 $50\%$ 的数据,$n,m\le 2\times 10^5$。 对于 $75\%$ 的数据,$n,m\le 5\times 10^5$。 对于 $100\%$ 的数据,满足 $1\le n,m\le 10^6$,$1\le f_i\le i-1$,$1\le a_i,b_i\le n$。