#ABC294G. 树上距离查询

树上距离查询

树上距离查询

题目描述

给定一棵有 NN 个顶点的树 TT。第 ii 条边 (1iN1)(1 \le i \le N-1) 连接顶点 uiu _ iviv _ i,权重为 wiw _ i

依次处理 QQ 个查询。查询有以下两种类型。

1 i w:将第 ii 条边的权重改为 ww

2 u v:输出顶点 uu 与顶点 vv 之间的距离。

这里,树中两个顶点 uuvv 之间的距离是指以 uuvv 为端点的路径中,边权重总和的最小值。

输入格式

输入按以下格式从标准输入给出:

NN
u1u _ 1 v1v _ 1 w1w _ 1
u2u _ 2 v2v _ 2 w2w _ 2
\vdots
uN1u _ {N-1} vN1v _ {N-1} wN1w _ {N-1}
QQ
query1\operatorname{query} _ 1
query2\operatorname{query} _ 2
\vdots
queryQ\operatorname{query} _ Q

这里,queryi\operatorname{query} _ i 表示第 ii 个查询,格式为以下两种之一:

1 ii ww

2 uu vv

输出格式

输出 qq 行,其中 qq 是第二种查询的个数。第 jj(1jq)(1 \le j \le q) 输出第 jj 个第二种查询的答案。

样例

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
9
19
11

第一个查询要求输出顶点 22 与顶点 33 之间的距离。边 11、边 22 依次相连构成它们之间的一条路径,总权重为 99,这是最小值,因此输出 99

第二个查询要求输出顶点 11 与顶点 55 之间的距离。边 33、边 44 依次相连构成一条路径,总权重为 1919,这是最小值,因此输出 1919

第三个查询把边 33 的权重改为 11

第四个查询要求输出顶点 11 与顶点 55 之间的距离。边 33、边 44 依次相连构成一条路径,总权重为 1111,这是最小值,因此输出 1111

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
5000000000
4294967296
1
1
2 1 1
0
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
308
409
313
316
0
103
313
103
525
100
215
525
421
209
318
519

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1ui,viN (1iN1)1 \le u _ i,v _ i \le N\ (1 \le i \le N-1)
  • 1wi109 (1iN1)1 \le w _ i \le 10^9\ (1 \le i \le N-1)
  • 给定的图是一棵树
  • 1Q2×1051 \le Q \le 2 \times 10^5
  • 对于每个第一种查询,1iN11 \le i \le N-1,且 1w1091 \le w \le 10^9
  • 对于每个第二种查询,1u,vN1 \le u,v \le N
  • 至少有一个第二种查询
  • 输入中的所有值均为整数

提示

注意,答案可能超出 32 位整数的范围。

难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
2892
类型
传统题
Time Limit
4000ms
Memory Limit
1024MiB
上传者
标签