说明
给定一棵包含 n 个顶点的带权树,其边为 (u1,v1)(权重 w1)、(u2,v2)(权重 w2)、…、(un−1,vn−1)(权重 wn−1)。请编写程序,支持 q 次查询,每次查询属于以下两种类型之一:
- 类型 1:输入 x,k,n1,…,nk,要求找出从顶点 x 到任意顶点 y 的最长路径长度,其中路径从 x 到 y 不得经过任何被指定的顶点 n1,…,nk。
- 类型 2:输入 i,w,表示将第 i 条边 (ui,vi) 的权重修改为 w。
输入格式
从标准输入的第一行读入整数 n。接下来的 n−1 行,每行包含三个整数 ui,vi,wi,表示连接顶点 ui 和 vi 的一条边,其权重为 wi。再下一行读入整数 q。随后的 q 行中,每行首先给出查询类型(1 或 2):
- 若类型为 1,则接着读入 x、k,以及 k 个整数 n1,…,nk;
- 若类型为 2,则接着读入 i 和 w。
输出格式
对于每个类型 1 的查询,在标准输出上单独一行打印所求的最长路径长度。
5
1 2 1
1 4 2
2 3 3
2 5 4
10
1 1 0
1 2 0
1 3 0
1 4 0
1 5 0
1 1 1 5
1 1 1 2
2 1 100
1 2 0
1 2 4 1 3 4 5
5
4
7
7
7
4
2
102
0
提示
样例 1 解释
在查询中需要寻找的目标顶点依次是 5,5,5,3,3,4,4,2。
限制条件
- 1≤n,q, ∑k≤200000
- 1≤ui,vi≤n
- 1≤w,wi≤109
- 对所有 1≤i≤k,有 ni=x
- 对所有 1≤i=j≤k,有 ni=nj
子任务
| 子任务 |
分数 |
额外限制条件 |
| 1 |
5 |
n,q≤5000 |
| 2 |
15 |
每个顶点的度数至多为 2 |
| 3 |
k=0 |
| 4 |
30 |
不存在类型 2 的查询 |
| 5 |
35 |
无 |
只有当成功通过某子任务所对应的所有测试点时,才能获得该子任务的分数。
翻译由 Qwen3.5-397B-A17B 完成