题目名称 3403. [模板]树上操作A
输入输出 tree.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2026-04-24加入
开放分组 全部用户
提交状态
分类标签
树状数组 DFS序 线段树
分享题解
通过:1, 提交:1, 通过率:100%
Gravatarsyzhaoss 100 0.814 s 7.15 MiB C++
关于 树上操作A 的近10条评论(全部评论)

3403. [模板]树上操作A

★★☆   输入文件:tree.in   输出文件:tree.out   简单对比
时间限制:1 s   内存限制:512 MiB

【题目描述】

给定一棵有$n$个结点的有根树,树根编号为$1$,每个结点都有初始权值,你需要实现如下操作:

C x y,将结点$x$的编号的权值增加$y$;

Q x,查询以$x$为根的子树的结点权值之和。

【输入格式】

一行两个整数$n,m$,表示树结点数和操作数。

接下来一行$n$个整数,表示结点初始状态下的权值。

接下来$n-1$行,每行两个整数$x,y$,表示$x,y$之间有一条边。

接下来$m$行,每行一个操作。

【输出格式】

对于每个查询操作,输出以$x$为根的子树的结点权值之和。

【样例输入】

5 5
2 3 7 5 1
1 2
1 3
2 4
2 5
Q 2
C 4 6
Q 2
C 3 5
Q 1

【样例输出】

9
15
29

【数据规模与约定】

对于$60\%$的数据,$1\leq n,m\leq 10^4$。

对于$100\%$的数据,$1\leq n, m\leq 2\times 10^5$,保证所有输入的权值在$[-1000, 1000]$。