题目 30237

动态树点加子树求和

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

【题目描述】

给定一棵 NN 个顶点的树,其边为 (ui,vi)(u_i, v_i)。第 ii 个顶点上写有一个值 aia_i。

请处理 QQ 次查询。保证每次查询后该图仍然是一棵树。

  • 0 $u$ $v$ $w$ $x$:删除边 (u,v)(u, v),并添加边 (w,x)(w, x)。
  • 1 $p$ $x$:ap←ap+xa_p \gets a_p + x
  • 2 $v$ $p$:对于边 (v,p)(v, p)(把 pp 视为父亲),输出 vv 的子树中所有顶点的权值之和。

【输入】

文本
$N$ $Q$
$a_0$ $a_1$ ... $a_{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 $v$ $p$ 查询,输出一行一个整数,表示把 pp 视为父亲时 vv 的子树中所有顶点的权值之和。

【输入样例】

文本
5 7
1 10 100 1000 10000
0 1
1 2
2 3
1 4
2 1 2
1 1 100000
2 1 2
0 1 2 2 0
2 0 2
0 2 3 3 1
2 1 4

【输出样例】

文本
10011
110011
110011
101111

【数据范围】

  • 1≤N,Q≤200,0001 \leq N, Q \leq 200,000
  • 0≤ai,x≤1090 \leq a_i, x \leq 10^9
  • 0≤p,ui,vi<N0 \leq p, u_i, v_i < N
  • (ui,vi)(u_i, v_i) 构成的是一棵树

【来源】

Library Checker(yosupo06) dynamic_tree_vertex_add_subtree_sum

数据下载

题目 30237 的公开数据

正在读取文件列表…

常用命令

题目 30237 的 ROJ 命令

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