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 $
- 所有输入值都为整数。