#P14567. [Bulgarian 2024]longest
[Bulgarian 2024]longest
题目描述
给定一棵带权树,共有 个点。
第 条边连接顶点 和 ,边长为 。
请你编写程序 longest,支持 次操作,操作分为两种类型:
1 x k n_1 ... n_k:求从顶点 到某个顶点 的最长路径长度,要求从 到 的路径不能经过顶点 中的任何一个。2 i w:将第 条边 的长度修改为 。
对于每个第一类操作,输出所求的最长路径长度。
输入格式
第一行一个整数 ,表示树的节点数。
接下来 行,每行三个整数 ,表示一条连接 与 的边,边长为 。
接下来一行一个整数 ,表示操作数。
接下来 行,每行描述一个操作。
-
如果操作类型为
1,则输入格式为:1 x k n_1 n_2 ... n_k -
如果操作类型为
2,则输入格式为:2 i w
输出格式
对于每个类型为 1 的操作,输出一行一个整数,表示答案。
数据范围
- 对于任意 ,有
- 对于任意 ,有
子任务
| 子任务 | 分值 | 额外限制 |
|---|---|---|
| 1 | 5 | |
| 2 | 15 | 每个点的度数都不超过 |
| 3 | ||
| 4 | 30 | 没有第二类操作 |
| 5 | 35 | 无额外限制 |
只有通过某个子任务的全部测试点,才能获得该子任务的分数。
样例输入
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
样例说明
上述若干次第一类询问中,满足条件的目标点 依次为:
。