『SpOI - R1』架子鼓可以站 C

题目描述

现在有一棵 $n$ 个点的树,树根是节点 $1$。 可以对这棵树做任意次**站 C 操作**,每次**站 C 操作**为:选择树上的一个叶子结点 $x$,再选择根节点到 $x$ 路径上的一条边,删除它;然后添加一条连接 $x$ 和根节点的边。 你需要求出经过若干次**站 C 操作**后树的直径的最大值。 **注意:叶子结点的定义是不为根节点,且度数为 $1$ 的节点。**

输入输出格式

输入格式


**本题包含多组测试。** 第一行一个整数 $T$,表示测试数据组数。 接下来 $T$ 组数据,每组第一行一个整数 $n$,第二行一个长为 $n-1$ 的序列 $f_i$,第 $i$ 项为 $i+1$ 号节点在树上的父亲。

输出格式


对于每组数据,一行一个整数表示答案。

输入输出样例

输入样例 #1

1
3
1 2

输出样例 #1

2

输入样例 #2

1
7
1 2 1 4 4 5

输出样例 #2

6

说明

### 样例 #1 解释 不做操作时,树的直径为 $2$。可以证明这是最大的直径。 ### 样例 #2 解释 样例中的树如下: ![](https://cdn.luogu.com.cn/upload/image_hosting/23wosgfo.png) 只需要一次站 C 操作:选择叶子结点 $6$,断开 $1$ 到 $4$ 的边,再连接 $6$ 和 $1$。 这将会使树形成一条链,直径为 $6$。可以证明这是最大的直径。 ### 数据范围 **请注意常数因子对程序效率的影响。** **本题开启子任务捆绑与子任务依赖。** 对于所有数据,满足 $1\leq T\leq 10^4$,$2 \leq n \leq 2\times 10^5$,保证输入数据构成一棵树。 | Subtask | $T\leq$ | $n\leq$ | 特殊性质 | 得分 | 子任务依赖 | | :----------: | :----------: | :----------: | :----------: | :----------: | :----------: | | 1 | $10^4$ | $10$ | 无 | $15$ | 无 | | 2 | $10^4$ | $20$ | 无 | $15$ | 1 | | 3 | $10^4$ | $90$ | 无 | $20$ | 1,2 | | 4 | $10^4$ | $2\times 10^5$ | $A$ | $15$ | 无 | | 5 | $15$ | $2\times 10^5$ | 无 | $35$ | 1,2,3,4 | **特别地,对于 Subtask 4,保证 $\sum n\leq 3\times 10^6$。** 特殊性质 $A$:不存在一对 $x\neq 1\land y\neq 1$ 的 $(x,y)$ 满足 $\text{LCA}(x,y)=1$。