#P16739. 树上询问

树上询问

题目描述

给定一棵有 nn 个点的无根树,需要依次执行 mm 次操作。

ii 次操作有以下三种类型之一:

  • 1 x y w:加入一条从 xxyy 的简单路径,该路径的权值为 ww
  • 2 t:删除第 tt 次操作加入的路径。保证 t<it<i,第 tt 次操作一定是加入路径操作,并且该路径尚未被删除;
  • 3 x:询问当前所有经过点 xx 的路径中,最大的路径权值。如果当前没有路径经过 xx,输出 00

树上两个点之间的路径是唯一的,路径经过其两个端点。

输入格式

第一行输入两个正整数 n,mn,m

接下来 n1n-1 行,每行输入两个正整数 x,yx,y,表示树中有一条连接点 xx 与点 yy 的无向边。

接下来 mm 行,第 ii 行描述第 ii 次操作,格式如下:

  • 1 x y w
  • 2 t
  • 3 x

具体含义见题目描述。

输出格式

对于每一个类型为 3 的操作,输出一行一个非负整数,表示询问答案。

样例

5 7
1 2
2 3
2 4
1 5
3 1
1 4 5 5
3 2
1 1 3 2
3 2
2 2
3 2
0
5
5
2

样例解释

  • 第一次询问时,没有路径经过点 11,答案为 00
  • 第二次询问时,只有路径 454\leftrightarrow 5 经过点 22,其权值为 55
  • 第三次询问时,新加入的路径 131\leftrightarrow 3 也经过点 22,但其权值为 2<52<5,因此答案仍为 55
  • 删除路径 454\leftrightarrow 5 后,只剩路径 131\leftrightarrow 3 经过点 22,答案为 22

数据范围与约定

对于所有测试数据:

  • 1n,m3×1051\le n,m\le 3\times 10^5
  • 1wi1051\le w_i\le 10^5
  • 1xi,yin1\le x_i,y_i\le n
  • 对删除操作,ti<it_i<i,第 tit_i 次操作一定是加入路径操作,并且对应路径尚未被删除。
测试点编号 n,mn,m 特殊性质
151\sim 5 1000\le 1000
6,76,7 105\le 10^5 A
8,98,9 2×105\le 2\times 10^5
10,1110,11 3×105\le 3\times 10^5
121412\sim 14 105\le 10^5
151715\sim 17 2×105\le 2\times 10^5
182518\sim 25 3×105\le 3\times 10^5

特殊性质 A:所有加入路径操作均满足 wi=1w_i=1

请注意常数因子对程序效率造成的影响。