题目 30238

动态树点赋值路径复合

查看题解 ↗GitHub ↗如何评测
题号
30238
时间限制
10000 ms
内存限制
1024 MB
标签
树图论
来源
Library Checker (yosupo06) - dynamic_tree_vertex_set_path_composite

【题目描述】

给定一棵有 NN 个顶点的树。树的边为 (ui,vi)(u_i, v_i),并且对每个 ii,顶点 ii 上写有一个一次函数 fi(x)=aix+bif_i(x) = a_i x + b_i。

依次处理 QQ 个查询。在查询处理完毕后,图仍然是一棵树。

  • 0 $u$ $v$ $w$ $x$:删除已有的边 (u,v)(u, v),并加入新的边 (w,x)(w, x)
  • 1 $p$ $c$ $d$:令 fp←cx+df_p \gets cx + d
  • 2 $u$ $v$ $x$:设 uu 与 vv 之间路径上的顶点依次为 p1=u,p2,…,pk=vp_1 = u, p_2, \ldots, p_k = v。输出 fpk(…fp2(fp1(x))) mod 998244353f_{p_k}(\ldots f_{p_2}(f_{p_1}(x))) \bmod 998244353

【输入】

文本
$N$ $Q$
$a_0$ $b_0$
$a_1$ $b_1$
:
$a_{N - 1}$ $b_{N - 1}$
$u_0$ $v_0$
$u_1$ $v_1$
:
$u_{N - 2}$ $v_{N - 2}$
$\textrm{Query}_0$
$\textrm{Query}_1$
:
$\textrm{Query}_{Q - 1}$

【输出】

对每个 2 类型的查询,输出一行一个整数,表示所求的值。

【输入样例】

文本
5 7
1 2
3 4
5 6
7 8
9 10
0 1
1 2
2 3
1 4
2 0 3 10
1 1 100000 0
2 3 4 11
0 1 2 2 0
2 3 4 12
0 2 3 3 1
2 2 3 13

【输出样例】

文本
1450
387900010
421200010
51100008

【输入样例2】

文本
7 7
1 2
2 3
3 4
4 5
5 6
6 7
7 8
0 1
1 2
0 3
3 4
0 5
5 6
2 2 4 1
2 4 6 1
2 6 2 1
0 0 5 3 5
2 2 4 1
2 4 6 1
2 6 2 1

【输出样例2】

文本
411
2199
607
411
2115
2383

【数据范围】

  • 1≤N,Q≤2000001 \leq N, Q \leq 200000
  • 1≤ai,c<9982443531 \leq a_i, c < 998244353
  • 0≤bi,d,x<9982443530 \leq b_i, d, x < 998244353
  • 0≤p<N0 \leq p < N
  • 0≤u,v<N0 \leq u, v < N

【来源】

Library Checker(yosupo06) dynamic_tree_vertex_set_path_composite

数据下载

题目 30238 的公开数据

正在读取文件列表…

常用命令

题目 30238 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。