#abc294g. [abc294_g]Distance Queries on a Tree
[abc294_g]Distance Queries on a Tree
问题描述
给定一棵有 个顶点的树 。边 连接顶点 和 ,并具有权重 。
按顺序处理 个查询。查询有两种类型,如下所示。
1 i w
:将边 的权重更改为 。2 u v
:打印顶点 和顶点 之间的距离。
这里,一棵树上两个顶点 和 之间的距离是连接它们的路径上所有边的权重之和的最小值。
约束条件
- 给定图是一棵树。
- 对于每个第一类查询,
- ,且
- 。
- 对于每个第二类查询,
- 。
- 至少有一个第二类查询。
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
这里, 表示第 个查询,并且有以下一种格式之一:
输出
打印 行,其中 是第二类查询的数量。第 行 应包含第 个第二类查询的答案。
示例输入 1
5
1 2 3
1 3 6
1 4 9
4 5 10
4
2 2 3
2 1 5
1 3 1
2 1 5
示例输出 1
9
19
11
初始树如下图所示。
应按以下方式处理每个查询。
- 第一个查询要求你打印顶点 和顶点 之间的距离。依次经过边 和边 的路径构成了它们之间的一条路径,总权重为 ,是最小值,因此应打印 。
- 第二个查询要求你打印顶点 和顶点 之间的距离。依次经过边 和边 的路径构成了它们之间的一条路径,总权重为 ,是最小值,因此应打印 。
- 第三个查询将边 的权重更改为 。
- 第四个查询要求你打印顶点 和顶点 之间的距离。依次经过边 和边 的路径构成了它们之间的一条路径,总权重为 ,是最小值,因此应打印 。
示例输入 2
7
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
6 7 1000000000
3
2 1 6
1 1 294967296
2 1 6
示例输出 2
5000000000
4294967296
注意,答案可能不适合 位整数。
示例输入 3
1
1
2 1 1
示例输出 3
0
示例输入 4
8
1 2 105
1 3 103
2 4 105
2 5 100
5 6 101
3 7 106
3 8 100
18
2 2 8
2 3 6
1 4 108
2 3 4
2 3 5
2 5 5
2 3 1
2 4 3
1 1 107
2 3 1
2 7 6
2 3 8
2 1 5
2 7 6
2 4 7
2 1 7
2 5 3
2 8 6
示例输出 4
308
409
313
316
0
103
313
103
525
100
215
525
421
209
318
519