题目描述
有一棵树,含 n 个节点,边带权。
会有 q 次修改,每次会将树上的一条边的边权进行修改,在每次修改后,您需要求出每次修改后,这棵树的直径上的边权和。
本题强制在线。
输入格式
第一行为三个整数 n,q,w,分别表示点的个数,询问的个数和边权的上限。
接下来 n−1 行,每一行为三个整数 ai,bi,ci,表示 ai 到 bi 有一条边权为 ci 的边。
接下来 q 行,每行两个经过加密的整数 dj,ej。
解密方式如下:
- dj′=(dj+last)mod(n−1)
- ej′=(ej+last)modw
其中 last 表示上一个询问的答案,初值为 0。
表示将第 dj′+1 条边的边权改为 ej′。
输出格式
共输出 q 行,一行一个整数,第 i 行的整数表示在第 i 次修改后的直径上的权值总和。
提示
样例 1 解释
解密后的修改如下:
如图为树的边权变化过程,红边代表树的直径:

数据范围
对于 100% 的数据,保证 2≤n≤105,1≤q≤105,1≤w≤2×1013,1≤ai,bi≤n,0≤ci,ej<w,0≤dj<n−1。
详细子任务限制及分值如下表:
子任务编号 |
限制 |
分值 |
1 |
n,q≤100 且 w≤104 |
11 |
2 |
n,q≤5×103 且 w≤104 |
13 |
3 |
w≤104 且边的形式均为 (1,i) |
7 |
4 |
w≤104 且边的形式均为 (i,2×i) 或 (i,2×i+1) |
18 |
5 |
保证有一条直径经过 1 号节点 |
24 |
6 |
无特殊限制 |
27 |
说明
本题译自 Central-European Olympiad in Informatics 2019 Day 1 T2 Dynamic Diameter。