#P2590. 树的统计

树的统计

树的统计

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

给定一棵有 nn 个节点的树,节点编号为 11 到 nn,每个节点都有一个整数权值。请处理以下三种操作:

  • CHANGE u t:把节点 uu 的权值修改为 tt;
  • QMAX u v:询问节点 uu 到节点 vv 的简单路径上所有节点权值的最大值;
  • QSUM u v:询问节点 uu 到节点 vv 的简单路径上所有节点权值之和。

路径包含两个端点。当 u=vu=v 时,路径只包含节点 uu。

输入格式

第一行输入一个整数 nn。

接下来 n−1n-1 行,每行输入两个整数 a,ba,b,表示树中有一条连接节点 a,ba,b 的边。

下一行输入 nn 个整数 w1,w2,…,wnw_1,w_2,\ldots,w_n,其中 wiw_i 是节点 ii 的初始权值。

下一行输入一个整数 qq,表示操作数。

接下来 qq 行,每行输入一个操作,格式为 CHANGE u t、QMAX u v 或 QSUM u v。

输出格式

对每个 QMAX 或 QSUM 操作输出一行一个整数,表示询问结果。

样例输入 1

4
1 2
2 3
4 1
4 2 1 3
12
QMAX 3 4
QMAX 3 3
QMAX 3 2
QMAX 2 3
QSUM 3 4
QSUM 2 1
CHANGE 1 5
QMAX 3 4
CHANGE 3 6
QMAX 3 4
QMAX 2 4
QSUM 3 4

样例输出 1

4
1
2
2
10
6
5
6
5
16

数据范围

对于所有数据,1≤n≤3×1041\le n\le 3\times 10^4,0≤q≤2×1050\le q\le 2\times 10^5,任意时刻每个节点的权值均在 [−3×104,3×104][-3\times 10^4,3\times 10^4] 内。输入保证给出的图是一棵树,且操作中的节点编号合法。

子任务编号 分值 特殊限制
1 20 n≤200n\le 200 且 q≤200q\le 200
2 给定的树是一条链
3 不含 CHANGE 操作
4 40 无特殊限制