#P1058. 最远点

最远点

题目描述

现在给你一个 nn 个节点的树。你一共要做 mm 次操作。每次操作是下列两个操作中的一种:

  1. 删除树上现存的一条边。
  2. 查询在节点 uu 目前所在的连通块内,离点 uu 最远的点的距离。

两点之间的距离定义为两点之间简单路径的边数。

输入格式

第一行两个数,nnmm,表示树的大小和操作数量。

然后 n1n-1 行,每行两个数 ui,viu_i, v_i 表示树上一条边。

之后有一个空行

接下来 mm 行,每行两个数 opti,xiopt_i, x_i

如果 opti=1opt_i = 1,则 xix_i 为删除的边的编号,保证每条边最多被删除一次。

如果 opti=2opt_i = 2,则 xix_i 为查询点的编号。

输出格式

对于每个 2 类操作,输出一行表示答案。

5 6
1 2
1 3
3 4
3 5

2 1
1 2
2 1
1 4
2 4
2 5
2
1
1
0

数据范围

对于所有测试点,保证1n,m21051\le n,m \le 2 * 10^5,所有点的限制如下:

大样例

大样例下载