#P11330. [NOISG 2022 Finals] Grapevine
[NOISG 2022 Finals] Grapevine
题目描述
Syrup 有一个巨大的葡萄藤。这个葡萄藤上共有 片叶子,用 编号;这些叶子之间有 条藤连接。第 条藤连接第 和第 片叶子,长度为 。换句话说,这些叶子和藤组成了一棵树。没有两个葡萄藤的两端相同,且这些叶子之间都可以相互到达。
Syrup 精通养护葡萄藤。他可以向一个叶子 浇水,使得这里飞速生长。如果这片叶子上还没有葡萄,那么浇完水后会立刻长出;如果已经有葡萄了,那么这个葡萄会因为水分过多而消失。
他也可以选择一条树枝,并改变它的长度。因为这个葡萄藤实在太大了,所以他需要站在叶子上,并快速找到离它距离最近的一个葡萄。
现在,刚刚经历过暴风雨的葡萄藤上没有葡萄。在这一周内,Syrup 打算进行 次以上操作,他想让你帮他快速回答出他的问题。
输入格式
第一行,两个整数 ;
接下来 行,每行三个整数 。
接下来 行,表示 个操作:
-
1 q
:现在 Syrup 站在编号为 的叶子上,他想找到离它最近的葡萄,请你输出这个最小距离。 -
2 u
:向编号为 的叶子浇水。 -
3 a b w
:将第 片叶子和第 片叶子之间的树枝长度改为 。
输出格式
对于每个 1
操作,输出距离的最小值。如果当前没有任何一个葡萄,输出 -1
。
提示
【数据范围】
分值 | 特殊性质 | |
---|---|---|
样例 | ||
对于所有查询操作,保证 | ||
整个葡萄藤是一颗完全二叉树, | ||
在任意时刻整个葡萄藤上都最多只有一个葡萄 | ||
所有 2 操作都在 1 和 3 操作之前,且对于所有 3 操作, |
||
无 |
对于 的数据,。