题目 30247

点加路径求和

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

【题目描述】

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

依次处理以下 QQ 个查询:

  • 0 $p$ $x$:ap←ap+xa_p \gets a_p + x
  • 1 $u$ $v$:输出顶点 uu 与顶点 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}$

【输出】

对每个 1 $u$ $v$ 查询,输出一行一个整数,表示顶点 uu 与顶点 vv 之间路径上(含两端)所有顶点的数值之和。

【输入样例】

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

【输出样例】

文本
1111
10110
101110
1100

【数据范围】

  • 1≤N,Q≤5000001 \leq N, Q \leq 500000
  • 0≤ai,x≤10000000000 \leq a_i, x \leq 1000000000
  • 0≤p,ui,vi<N0 \leq p, u_i, v_i < N

【来源】

Library Checker(yosupo06) vertex_add_path_sum

数据下载

题目 30247 的公开数据

正在读取文件列表…

常用命令

题目 30247 的 ROJ 命令

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