【模板】Prufer 序列
题目描述
请实现 Prüfer 序列和无根树的相互转化。
为方便你实现代码,尽管是无根树,我们在读入时仍将 $n$ 设为其根。
对于一棵无根树,设 $f_{1\dots n-1}$ 为其**父亲序列**($f_i$ 表示 $i$ 在 $n$ 为根时的父亲),设 $p_{1 \dots n-2}$ 为其 **Prüfer 序列**。
另外,对于一个长度为 $m$ 的序列 $a_{1 \dots m}$,我们设其**权值**为 $\operatorname{xor}_{i = 1}^m i \times a_i$。
输入输出格式
输入格式
第一行两个整数 $n,m$,表示树的点数和转化类型。
若 $m = 1$,第二行一行 $n-1$ 个整数,表示父亲序列。
若 $m = 2$,第二行一行 $n-2$ 个整数,表示 Prufer 序列。
输出格式
若 $m = 1$,一行一个整数,表示给出的父亲序列对应的 Prüfer 序列的权值。
若 $m = 2$,一行一个整数,表示给出的 Prüfer 序列对应的父亲序列的权值。
输入输出样例
输入样例 #1
6 1
3 6 4 6 1
输出样例 #1
29
输入样例 #2
6 2
4 6 5 2
输出样例 #2
4
说明
**【样例 1 解释】**
$p = \{6\ 1\ 3\ 4\}$。
**【样例 2 解释】**
$f = \{4\ 6\ 6\ 5\ 2\}$。
---
**【数据范围】**
| 测试点编号 | $2 \le n \le $ | $m = $ |
| :--------: | :-------------: | :----: |
| $1$ | $10^3$ | $1$ |
| $2$ | $10^5$ | $1$ |
| $3$ | $10^5$ | $1$ |
| $4$ | $5 \times 10^6$ | $1$ |
| $5$ | $5 \times 10^6$ | $1$ |
| $6$ | $10^3$ | $2$ |
| $7$ | $10^5$ | $2$ |
| $8$ | $10^5$ | $2$ |
| $9$ | $5 \times 10^6$ | $2$ |
| $10$ | $5 \times 10^6$ | $2$ |