#CSES2134. 路径查询 II

路径查询 II

题目背景

翻译自 CSES-2134 题。

题目描述

给定一个包含 nn 个节点的树,节点编号为 1,2,,n1,2,…,n。每个节点有一个值。

你的任务是处理以下两种类型的查询:

  1. 将节点 ss 的值修改为 xx
  2. 找到节点 aa 和节点 bb 之间路径上的最大值。

输入格式

第一行包含两个整数 nnqq:分别表示树中的节点数量和查询数量。节点编号为 1,2,,n1,2,…,n

第二行包含 nn 个整数 v1,v2,,vnv_1,v_2,…,v_n:每个节点的初始值。

接下来有 n1n−1 行,每行包含两个整数 aabb:表示节点 aa 和节点 bb 之间有一条边。

最后有 qq 行查询。每行查询的格式可以是:

  • 1 s x:表示将节点 ss 的值修改为 xx
  • 2 a b:表示查询节点 aa 和节点 bb 之间路径上的最大值。

输出格式

对于每个查询类型 2,输出路径上的最大值。

样例

5 3
2 4 1 3 3
1 2
1 3
2 4
2 5
2 3 5
1 2 2
2 3 5
4 3

说明/提示

1n,q21051 \leq n,q \leq 2 \cdot 10^5

1a,b,sn1 \leq a,b,s \leq n

1vi,x1091 \leq v_i , x\leq 10^9