T292115 [传智杯 #5 练习赛] 树的变迁

题目描述

给定一棵具有 $n$ 个节点的树,每个节点有一个初始权值 $a_i$。 一共需要进行 $m$ 次操作,每次操作包括: - `1 e` 编号为 $e$ 的边突然消失,使得它所在的那棵树变成了两棵树。 - `2 u val` 编号为 $u$ 的节点的权值变成了 $val$。 - `3 u` 进行了一次查询,查询 $u$ 所在的那棵树的权值之和。 现在你需要来模拟上述事件,以了解树的变迁。

输入格式

第一行为 $n, m$,如上所述。 第二行有 $n$ 个数,为 $n$ 个结点的初始权值,在 $10^3$ 以内。 下面 $n-1$ 行,每行一组 $u, v$,表示一条边。(保证初始为一棵树) 下面 $m$ 行有 $m$ 个操作: 先读入一个 $\text{opt}$,表示操作类型。 - $\text{opt}=1$ 时,读入 $e$,表示删掉读入的第 $e$ 条边。(保证第 $e$ 条边存在) - $\text{opt}=2$ 时,读入 $u,val$,表示把结点 $u$ 的权值改成 $val$($val \le 1000$)。 - $\text{opt}=3$ 时,读入 $u$,表示查询 $u$ 所在的那棵树的结点权值和。

输出格式

对于每个查询操作,输出一行一个数表示答案。

说明/提示

所有测试数据数据满足 $1 \leq n,m \leq {10}^5$,$1 \leq a_i,val \leq 1000$。