#P11330. [NOISG 2022 Finals] Grapevine

[NOISG 2022 Finals] Grapevine

题目描述

Syrup 有一个巨大的葡萄藤。这个葡萄藤上共有 NN 片叶子,用 1N1 \sim N 编号;这些叶子之间有 N1N-1 条藤连接。第 ii 条藤连接第 AiA_i 和第 BiB_i 片叶子,长度为 WiW_i。换句话说,这些叶子和藤组成了一棵树。没有两个葡萄藤的两端相同,且这些叶子之间都可以相互到达。

Syrup 精通养护葡萄藤。他可以向一个叶子 jj 浇水,使得这里飞速生长。如果这片叶子上还没有葡萄,那么浇完水后会立刻长出;如果已经有葡萄了,那么这个葡萄会因为水分过多而消失。

他也可以选择一条树枝,并改变它的长度。因为这个葡萄藤实在太大了,所以他需要站在叶子上,并快速找到离它距离最近的一个葡萄。

现在,刚刚经历过暴风雨的葡萄藤上没有葡萄。在这一周内,Syrup 打算进行 QQ 次以上操作,他想让你帮他快速回答出他的问题。

输入格式

第一行,两个整数 N,QN,Q

接下来 N1N-1 行,每行三个整数 Ai,Bi,WiA_i,B_i,W_i

接下来 QQ 行,表示 QQ 个操作:

  • 1 q:现在 Syrup 站在编号为 qq 的叶子上,他想找到离它最近的葡萄,请你输出这个最小距离。

  • 2 u:向编号为 uu 的叶子浇水。

  • 3 a b w:将第 aa 片叶子和第 bb 片叶子之间的树枝长度改为 ww

输出格式

对于每个 1 操作,输出距离的最小值。如果当前没有任何一个葡萄,输出 -1

7 11
1 2 2
2 3 4
5 6 1
5 3 6
3 7 6
2 4 9
2 6
2 4
2 7
1 1
3 2 3 0
1 1
3 6 5 0
1 1
3 3 5 0
3 2 4 0
1 1

11
8
8
2
6 11
1 2 3
1 3 4
2 4 1
2 5 4
3 6 6
2 3
1 2
2 4
3 1 3 2
1 1
2 3
3 2 1 2
2 4
1 3
2 2
1 3

7
2
-1
4
7 8
1 2 2
2 3 3
3 6 2
4 6 1
5 6 4
6 7 3
2 3
1 4
2 3
2 5
1 1
3 6 7 4
1 5
1 7

3
11
0
8

提示

【数据范围】

Subtask\text{Subtask} 分值 特殊性质
00 样例
11 66 N,Q2000N,Q\le2000
22 1414 对于所有查询操作,保证 q=1q=1
33 1515 整个葡萄藤是一颗完全二叉树,Ai=i+12,Bi=i+1A_i=\lfloor\frac{i+1}{2}\rfloor,B_i=i+1
44 在任意时刻整个葡萄藤上都最多只有一个葡萄
55 1818 所有 2 操作都在 13 操作之前,且对于所有 3 操作,w=0w=0
66 3232

对于 100%100\% 的数据,$2 \le N \le 100000,1 \le Q \le 100000,1 \le A_i \not = B_i \le N,0 \le W_i \le 10^9$。