[Ynoi2011] ODT

题目背景

【先咕咕咕

题目描述

给你一棵树,边权为 $1$,有点权。 需要支持两个操作: - `1 x y z`:表示把树上 $x$ 到 $y$ 这条简单路径的所有点点权都加上 $z$。 - `2 x y`:表示查询与点 $x$ 距离**小于等于** $1$ 的所有点里面的第 $y$ 小点权。

输入输出格式

输入格式


第一行两个整数 $n,m$。 第二行 $n$ 个整数表示每个点的点权。 之后 $n-1$ 行,每行两个整数 $x,y$ 表示 $x$ 和 $y$ 之间连有一条边。 之后 $m$ 行,每行为 `1 x y z` 或者 `2 x y` 形式,意义如上述。

输出格式


对每个 2 操作输出一行,每行一个整数表示答案。 数据保证每次询问都存在答案。

输入输出样例

输入样例 #1

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

输出样例 #1

4
3
4

说明

Idea:nzhtl1477, Solution:nzhtl1477( $O( n\log^2n/ \log\log n )$ solution ),negiizhao( $O( n\log n\log\log\log n )$ solution ),ccz181078( $O( n\log n )$ solution ), Code:nzhtl1477( $O( n\log^2 n/ \log\log n )$ code ) Data:nzhtl1477( partially uploaded ) subtask 1:$20\%$ $n,m\leq 1000$。 subtask 2:$10\%$ 树为一条链。 subtask 3:$20\%$ $n,m\leq 10^5$。 subtask 4:$30\%$ $n,m\leq 4\times 10^5$。 subtask 5:$20\%$ $n,m\leq 10^6$。 对于 $100\%$ 的数据,$1\leq n,m\leq 10^6$,$0\leq $ 每次加的数 $\leq 2000$,$0\leq $ 初始的点权 $\leq 2000$。