#P13625. [ICPC 2024 APC] Tree Quiz
[ICPC 2024 APC] Tree Quiz
题目描述
你的朋友想考考你。给你一棵有 个节点的有根树,节点编号从 到 。对于每个节点 ,它的父节点是 ,除了根节点(没有父节点的节点)的 。如果节点 ,或者节点 是节点 的父节点(如果存在)的祖先,那么我们说节点 是节点 的一个祖先。
如果节点 同时是节点 和节点 的祖先,我们称节点 是节点 和 的一个共同祖先。如果节点 是节点 和 的一个共同祖先,并且节点 和 的任何一个共同祖先也都是节点 的祖先,那么我们称节点 是节点 和 的最近共同祖先。我们将节点 和 的最近共同祖先表示为 。特别地,。
你的朋友想要运行以下伪代码:
let L be an empty array
for x = 1 to n
for y = 1 to n
append ((x-1)*n*n + (LCA(x,y)-1)*n + (y-1)) to L
sort L in non-decreasing order
你的朋友有 个问题,编号从 到 。在第 个问题中,会给你一个整数 ,并要求你找出数组 中的第 个元素。请注意, 是以 为起始下标的,所以其下标范围从 到 。为了通过测试,你必须回答所有问题。
输入格式
输入的第一行包含两个整数 和 (;)。第二行包含 个整数 (对于所有的 ,)。保证给定的值代表一棵有根树。接下来的 行每行包含一个整数。第 行包含 ()。
输出格式
对于每个问题,按顺序输出一个整数作为问题的答案。
5 3
3 0 2 2 3
1
18
25
0
82
124
提示
输入中的树如图 K.1 所示。
的元素为 $(0, 6, 8, 12, 14, 30, 31, 32, 33, 34, 56, 58, 60, 62, 64, 80, 81, 82, 84, 93, 106, 108, 110, 112, 124)$。