B. *【树上点差分】树结构区间修改、路径求和[LOJ147]DFS序4

    传统题 2000ms 512MiB

*【树上点差分】树结构区间修改、路径求和[LOJ147]DFS序4

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

[AdditionalFile147.zip](file://AdditionalFile147.zip?type=additional_file)

Description

本题严重卡常,请务必使用 fread 快读,不保证无快读的程序能过(虽然标程没用快读)。另外,建议使用 Tarjan 或树剖求 LCA。 ## 【题意】

给一棵有 NN 个节点的有根树(根结点的编号为 RR)。每个结点都有一个权值 viv_i

接下来有 M 组操作,操作分为三类:

1 x k,表示将结点 x 的权值增加 k;

2 x k,表示将 x 的子树上所有结点的权值增加 k;

3 x y,表示求「结点 x 到结点 y 的简单路径」上所有结点的权值之和。

【输入格式】

第一行三个整数 N M R (1R N,M106)N \ M \ R \ (1 \le R \ N, M \le 10^6)

第二行有 NN 个整数 viv_i

在接下来的 N1N-1 行中,每行两个整数,表示一条边。

在接下来的 MM 行中,每行一组操作。

(106vi,k106)( -10^6\leqslant v_i, k\leqslant 10^6)

【输出格式】

对于每组 3 x y\texttt{3 x y} 操作,输出一个整数,表示「结点 x 到结点 y 的简单路径」上所有结点的权值之和(含结点 x, y)。

【样例输入1】

10 13 5
-2 -7 0 2 -9 -2 -4 9 8 -1
9 8
9 4
9 2
4 10
10 7
10 6
2 1
8 3
7 5
3 8 6
1 7 -8
1 5 -9
1 5 -4
1 4 -2
1 2 -1
3 5 1
1 7 1
3 1 3
1 1 -3
3 10 2
1 1 -8
3 8 4

【样例输出1】

16
-37
7
-1
17

【样例输入2】

10 16 4
-13 -11 5 4 18 13 14 -8 -8 14
4 1
4 10
10 2
2 8
4 7
1 6
8 5
1 3
2 9
3 5 10
1 5 -5
2 9 -4
3 8 6
1 5 -8
2 8 -5
3 8 7
1 9 0
2 10 -3
3 7 6
2 9 -4
2 8 2
3 4 4
2 1 8
1 6 5
3 8 3

【样例输出2】

13
-1
8
18
4
-5

课堂测试(20250511)树上点差分最后两题

未参加
状态
已结束
规则
XCPC
题目
2
开始于
2025-5-11 14:00
结束于
2025-5-11 15:00
持续时间
1 小时
主持人
参赛人数
13