{"problem":{"name":"[Ynoi2079] 2stmo","description":{"content":"给定一棵 $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$。 排列的代价定义为： ","description_type":"Markdown"},"platform":"Luogu","limit":{"time_limit":3000,"memory_limit":524288},"difficulty":{"LuoguStyle":"P7"},"is_remote":true,"is_sync":true,"sync_url":null,"sign":"LGP9988"},"statements":[{"statement_type":"Markdown","content":"给定一棵 $n$ 个顶点的有根树，顶点编号为 $1,\\dots,n$ ，$1$ 为根，$f_2,\\dots,f_n$ 依次表示 $2,\\dots,n$ 的父亲。\n\n给定 $m$ 对整数 $a_1,b_1,\\dots,a_m,b_m$ ，你需要构造一个 $1,\\dots,m$ 的排列 $p_1,\\dots,p_m$ ，满足这个排列的代价不超过 $4\\times 10^9$。\n\n排列的代价定义为：\n\n$|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})|$\n\n其中 $S(x)$ 是以 $x$ 为根的子树中的顶点构成的集合，$|A|$ 是集合 $A$ 的元素个数，$A\\oplus B$ 是集合 $A,B$ 的对称差（即在 $A,B$ 中恰好出现一次的元素构成的集合）。\n\n## Input\n\n第一行两个整数 $n,m$ ；\n\n第二行 $n-1$ 个整数 $f_2,\\dots,f_n$ ；\n\n接下来 $m$ 行，每行两个整数表示 $a_i,b_i$ ，$i=1,\\dots,m$ 。\n\n## Output\n\n输出 $m$ 行，每行一个整数，依次表示 $p_1,\\dots,p_m$ 。\n\n[samples]\n\n## Note\n\nIdea：nzhtl1477，Solution：ccz181078，Code：ccz181078，Data：ccz181078\n\n对于 $25\\%$ 的数据，满足 $n,m\\le 10^4$。\n\n对于 $50\\%$ 的数据，$n,m\\le 2\\times 10^5$。\n\n对于 $75\\%$ 的数据，$n,m\\le 5\\times 10^5$。\n\n对于 $100\\%$ 的数据，满足 $1\\le n,m\\le 10^6$，$1\\le f_i\\le i-1$，$1\\le a_i,b_i\\le n$。","is_translate":false,"language":"English"}],"meta":{"iden":"LGP9988","tags":["Special Judge","O2优化","Ynoi","2079"],"sample_group":[["5 3\n1 1 2 3\n1 1\n2 5\n4 3","2\n3\n1"]],"created_at":"2026-03-03 11:09:25"}}