#ABC460G. Vertex Flip Query

Vertex Flip Query

Vertex Flip Query

  • 时间限制:2 秒
  • 内存限制:512 MiB

题目描述

有一棵包含 NN 个顶点的树,顶点编号为 11NN。第 ii 条边连接顶点 aia_ibib_i。每个顶点 ii 都有权值 WiW_i 和颜色 Ci{0,1}C_i\in\lbrace 0,1\rbrace

你需要依次处理 QQ 次操作。操作分为以下三种:

  • 1 v:将顶点 vv 的颜色 CvC_v 变为 1Cv1-C_v
  • 2 v x:将顶点 vv 的权值 WvW_v 变为 Wv+xW_v+x
  • 3 v:设 cc 为顶点 vv 的颜色。输出从顶点 vv 出发,仅经过颜色为 cc 的顶点所能到达的所有顶点(包括顶点 vv 本身)的权值之和。

输入格式

输入以如下格式给出,其中 queryi\mathrm{query}_i 表示第 ii 次操作。

NN QQ

W1W_1 W2W_2 \dots WNW_N

C1C_1 C2C_2 \dots CNC_N

a1a_1 b1b_1

a2a_2 b2b_2

\vdots

aN1a_{N-1} bN1b_{N-1}

query1\mathrm{query}_1

query2\mathrm{query}_2

\vdots

queryQ\mathrm{query}_Q

每次操作的输入格式为以下三种之一:

11 vv

22 vv xx

33 vv

输出格式

设第 33 类操作的次数为 mm。输出 mm 行,第 ii 行输出第 ii 个第 33 类操作的答案。

样例输入 1

5 9
1 10 100 1000 10000
0 0 0 0 0
1 2
2 3
3 4
2 5
3 1
1 2
3 1
3 2
3 3
1 3
1 2
2 1 1
3 5

样例输出 1

11111
1
10
1100
10012

样例输入 2

10 25
1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000
0 1 0 0 0 1 0 0 0 0
1 2
1 3
2 4
4 5
4 6
2 7
5 8
8 9
6 10
3 4
1 8
2 6 100000
3 3
1 3
1 7
1 7
1 7
3 8
2 1 1
2 6 100000
2 8 10000000
1 5
2 5 10000
1 9
2 7 1000000
1 7
2 10 1000000000
1 9
1 6
1 9
1 1
3 7
2 5 10000
3 6

样例输出 2

110011000
101
10000000
2000000
2000301000

数据范围

  • 1N3×1051\leq N\leq 3\times 10^5
  • 1Q2×1051\leq Q\leq 2\times 10^5
  • 1Wi1091\leq W_i\leq 10^9
  • Ci{0,1}C_i\in\lbrace 0,1\rbrace
  • 1ai<biN1\leq a_i<b_i\leq N
  • 保证输入的图是一棵树。
  • 1vN1\leq v\leq N
  • 1x1091\leq x\leq 10^9
  • 所有输入值均为整数。
子任务编号 分值 特殊限制
1 25 不存在第 11 类操作
2 35 树是一条链,即所有顶点的度数均不超过 22
3 40 无特殊限制