
树上点修 & 路径复合求和(Point Set Tree Path Composite Sum)
问题描述
给定:
- 一棵含 N 个顶点的树;
- N 个整数 a0,a1,…,aN−1;
- N−1 个整数 b0,b1,…,bN−2;
- N−1 个整数 c0,c1,…,cN−2。
边 i 连接顶点 ui 和 vi,且为双向边。
对每个整数 e 满足 0≤e≤N−2,令
fe(x)=bex+ce.
设 e0,e1,…,ek 是从顶点 x 到顶点 y 的简单路径上的边(按从 x 到 y 的顺序),定义
$$P(x, y) = f_{e_k}(f_{e_{k-1}}(\cdots f_{e_0}(a_y)\cdots)).$$
处理 Q 个查询:
0 w x r:将 aw 更新为 x,然后输出 $\left( \sum_{v=0}^{N-1} P(r, v) \right) \bmod 998244353$。
1 e y z r:将边 e 的参数更新为 (be,ce)←(y,z),然后输出 $\left( \sum_{v=0}^{N-1} P(r, v) \right) \bmod 998244353$。
约束条件
- 所有输入均为整数。
- 1≤N≤2×105
- 1≤Q≤2×105
- 0≤ui,vi≤N−1
- 0≤aw<998244353
- 1≤be<998244353
- 0≤ce<998244353
- 0≤w≤N−1
- 0≤e≤N−2
- 0≤x<998244353
- 1≤y<998244353
- 0≤z<998244353
- 0≤r≤N−1
输入
N Q
a0 a1 ⋯ aN−1
u0 v0 b0 c0
u1 v1 b1 c1
:
uN−2 vN−2 bN−2 cN−2
Query₀
Query₁
:
QueryQ−1
输出
p0
p1
:
pQ−1
其中 pi 表示第 i 个查询的答案。
3 2
1 2 3
0 1 4 5
1 2 6 7
0 2 8 0
1 0 9 10 1
239
76
8 4
1 2 3 4 5 6 7 8
0 1 10 1
1 2 10 1
0 3 10 1
0 4 10 0
0 5 10 1
5 6 10 0
6 7 10 1
0 6 10 5
1 4 100000 2 2
0 7 100000 3
0 0 100000 0
5161
175810713
702319900
769103076