AT_njpc2017_h 白黒ツリー
题目描述
给出N个顶点的有根的树。在各个顶点编号为1, 2,…N,顶点1是这根树的根。边全部是无向边,第i个( 2≤i≤N)顶点的父母是p[i]
最初,各顶点涂成白色或黑色,第i个顶点(1≤i≤N)初始的颜色为C[i],
C[i]=0时白色,C[i]=1的时候是黑色。
因为有Q个查询,所以请按顺序处理。查询有以下两种,输入形式和查询内容如下:
1.输入1 u:把顶点u作为根的部分树包含的全部的顶点的颜色使之反转。
2.输入2 u v:从顶点u到顶点v,如果能交替通过白色顶点和黑色顶点到达YES,不然就输出NO。最初的颜色是白色还是黑色都可以。
输入格式
(输入是标准的以下形式)
N
p[2]
p[3]
...
p[n]
c[1]
c[2]
...
c[n]
Q
查询[1]
查询[2]
...
查询[Q]
输出格式
对于2 u v格式的查询,回答按给出的顺序每行输出1个。
## 约定
输入全部是整数
2≤N≤10^5
1≤p[i]≤N
C[i]=0或1
1≤Q≤10^5
输入的树一定连接
当查询为1 u时,1≤u≤N 1≤u≤N
当查询为2 u v时,1≤u,v≤N,且u≠v。
确保至少存在一个格式2 u v的查询。
说明/提示
### 制約
- 入力は全て整数である。
- $ 2≦N≦10^5 $
- $ 1≦p_i≦N $
- $ C_i\ =\ 0 $ または $ 1 $
- $ 1≦Q≦10^5 $
- 入力される根付き木は必ず連結である。
- クエリが`1 u`のとき、$ 1≦u≦N $ である。
- クエリが`2 u v`のとき、$ 1≦u,v≦N $ かつ $ u≠v $ である。
- `2 u v`というフォーマットのクエリが少なくとも1つ存在することが保証される。