AT_abc460_g [ABC460G] Vertex Flip Query

题目描述

有一棵有 $N$ 个节点的树,节点的编号为 $1$ 到 $N$。第 $i$ 条边连接节点 $a_i$ 和 $b_i$。每个节点 $i$ 都有权值 $W_i$ 和颜色 $C_i\in\lbrace0,1\rbrace$。 你需要进行 $Q$ 次操作,操作有下列三种: - `1 v`:反转节点 $v$ 的颜色。 - `2 v x`:将节点 $v$ 的权值加上 $x$。 - `3 v`:设 $c$ 为节点 $v$ 的颜色。输出仅通过颜色为 $c$ 的节点(包括节点 $v$ 本身)从 $v$ 可达的所有节点的权值之和。

输入格式

输入以如下格式给出,其中 $\mathrm{query}_i$ 表示第 $i$ 次操作。 > $N$ $Q$ > > $W_1$ $W_2$ $\dots$ $W_N$ > > $C_1$ $C_2$ $\dots$ $C_N$ > > $a_1$ $b_1$ > > $a_2$ $b_2$ > > $\vdots$ > > $a_{N-1}$ $b_{N-1}$ > > $\mathrm{query}_1$ > > $\mathrm{query}_2$ > > $\vdots $ > > $\mathrm{query}_Q$ 对于每次操作,输入格式如下面三种中的一种。 > $1$ $v$ > $2$ $v$ $x$ > $3$ $v$

输出格式

设 $m$ 为操作 $3$ 的个数,输出 $m$ 行,第 $i$ 行为第 $i$ 个操作 $3$ 的答案。

说明/提示

### 样例解释 1 例如第 $1$ 次操作 $3$,仅通过颜色 $0$ 的节点从节点 $1$ 到达的节点集是 $\lbrace1,2,3,4,5\rbrace$。 ### 数据范围 - $ 1 \leq N \leq 3 \times 10^5 $ - $ 1 \leq Q \leq 2 \times 10^5 $ - $ 1 \leq W_i \leq 10^9 $ - $ C_i \in \lbrace 0,1 \rbrace $ - $ 1 \leq a_i \lt b_i \leq N $ - 保证输入为一棵树。 - $ 1 \leq v \leq N $ - $ 1 \leq x \leq 10^9 $ - 所有输入值都为整数。