#P2590. 树的统计

树的统计

树的统计

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

题目描述

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

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

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

输入格式

第一行输入一个整数 nn

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

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

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

接下来 qq 行,每行输入一个操作,格式为 CHANGE u tQMAX u vQSUM u v

输出格式

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

样例输入 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

数据范围

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

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