AT_abc460_g [ABC460G] Vertex Flip Query
Description
頂点に $ 1 $ から $ N $ の番号がついた $ N $ 頂点の木があります。 $ i $ 本目の辺は頂点 $ a_i $ と頂点 $ b_i $ を結ぶ辺です。頂点 $ i $ には重み $ W_i $ と色 $ C_i \in \lbrace 0,1 \rbrace $ が設定されています。
クエリを $ Q $ 個処理してください。クエリは以下の $ 3 $ 種類のいずれかです。
- `1 v`:頂点 $ v $ について $ C_v $ を $ 1-C_v $ に変更する。
- `2 v x`:頂点 $ v $ について $ W_v $ を $ W_v + x $ に変更する。
- `3 v` :頂点 $ v $ の色を $ c $ とする。頂点 $ v $ から色が $ c $ である頂点のみを通って到達可能な頂点(頂点 $ v $ 自身も含む)全てについての重みの総和を出力する。
Input Format
入力は以下の形式で標準入力から与えられる。ここで $ \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 $
Output Format
与えられた $ 3 $ 種類目のクエリの個数を $ m $ として、 $ m $ 行出力せよ。 $ i $ 行目には $ i $ 番目に与えられた $ 3 $ 種類目のクエリの答えを $ 1 $ 行で出力せよ。
Explanation/Hint
### Sample Explanation 1
例えば $ 1 $ 番目のクエリでは、頂点 $ 1 $ から色が $ 0 $ である頂点のみを通って到達可能な頂点の集合は $ \lbrace 1,2,3,4,5 \rbrace $ です。
### Constraints
- $ 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 $
- 入力される値は全て整数