U631144 树高

题目背景

在 2025杭州市科技节 中存在如下题目: 给定 $n$ 个节点的二叉树,求二叉树的树高。 邪恶的 SUNCHAOYI 认为这题过于简单,要求改编。 遂出现了如下题目:

题目描述

给定 $n$ 个节点的有根树(不一定是二叉树),以 $1$ 节点为根。 SUNCHAOYI 将会对树进行 $q$ 次操作,令 $f_u$ 表示 $u$ 节点的父亲。 每次操作流程如下: - 选择两个节点 $u,v$,保证 $2\leq u\leq n,1\leq v\leq n$。 - 如果 $v$ 不在 $u$ 的子树内且 $v\neq u$,将边 $(f_u,u)$ 切断,然后连接边 $(u,v)$ 。 定义节点 $u$ 的深度为 $u$ 到根节点最短路径上的边数为,记为 $d_u$。定义树高为 $\max_{u=1}^n d_u$。 你需要回答每次操作后 $u$ 节点的深度和整棵树的高度,否则 SUNCHAOYI 会将你封号。

输入格式

第一行两个整数 $n,q$,意义如题意所示。 接下来一行 $n-1$ 个整数,第 $i$ 个整数表示 $f_{i+1}$。表示初始情况下节点 $i+1$ 的父亲。 接下来 $q$ 行每行 $2$ 个整数 $u,v$,表示一次操作。 注意每次操作会影响后续操作。

输出格式

共 $q$ 行,每行 $2$ 个整数 $d_u,H$,分别表示第 $i$ 次操作后 $u$ 节点的深度和整棵树的高度。

说明/提示

对于 $20\%$ 的数据:$1\leq n,q\leq 10$。 对于 $50\%$ 的数据:$1\leq n,q\leq 1000$。 对于 $80\%$ 的数据:$1\leq n,q\leq 10^5$。 对于 $100\%$ 的数据:$1\leq n,q\leq 5\times 10^5$。 对于每一部分数据均有 $50\%$ 为随机生成。 输入输出数据较大,请使用效率较高的输入输出方式。