提高⏱ 2000ms💾 256MB#P8004

题目描述

给定 $n$ 个节点的树(根为 $1$),第 $i$ 个节点初始点权为 $w_i$。支持两种操作共 $q$ 次:操作一,把路径 $u$$v$ 上所有点的点权赋值为 $w$;操作二,查询路径 $u$$v$ 上点权的最大值。请用树链剖分等高效方法求解。

输入格式

第一行两个整数 $n,q$;第二行 $n$ 个整数 $w_i$;接下来 $n-1$ 行每行一条树边;最后 $q$ 行,每行是 1 u v w2 u v

输出格式

对每个操作二输出一行一个整数。

数据范围

$$1 \le n,q \le 10^5,\ 0 \le w_i,w \le 10^9$$

样例输入 #1
4 5
3 1 4 1
1 2
1 3
3 4
2 1 4
1 2 4 7
2 1 4
1 1 1 9
2 1 1
样例输出 #1
4
7
9
样例输入 #2
2 3
5 6
1 2
2 2 2
1 1 2 3
2 1 2
样例输出 #2
6
3