#P10799. 「CZOI-R1」三角形与树

    ID: 10223 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>数学树状数组O2优化最近公共祖先,LCA树链剖分

「CZOI-R1」三角形与树

题目背景

CaiZi 讨厌三角形,但是他喜欢树。

2024.8.15 Update:增加了一组 hack 数据。

题目描述

给定一颗有 nn 个点的树,节点编号为 1n1\sim n,每个点有点权,开始时点 ii 的点权为 aia_i。共有 qq 次操作。

  1. 将点 xx 到点 yy 的简单路径上的点的点权异或 kk
  2. 判断能否在点 xx 到点 yy 的简单路径上选 33不同点,并以这 33 个点的点权为边长构成三角形。特别的,如果无法选出 33 个点,也视为不能构成三角形

xx 到点 yy 的简单路径:点 xx 到点 yy 不重复走过任何一条边的路径。其上的所有点为这条路径上所有的点,包括xx 和点 yy

保证任何时刻不会有任何一个点的点权为 00

输入格式

第一行输入 22 个整数 n,qn,q,分别表示这棵树点的个数、操作的个数。

第二行输入 nn 个整数 aia_i,表示开始时点 ii 的点权。

接下来 n1n-1 行,每行输入 22 个整数 u,vu,v,表示这棵树的一条边。

接下来 qq 行,每行先输入 11 个整数 ss,表示操作类型。

  • s=1s=1,则再输入 33 个整数 u,v,wu,v,w,表示一次修改操作。
  • s=2s=2,则再输入 22 个整数 u,vu,v,表示一次询问操作。

输出格式

对于每次询问操作,若能满足条件输出 11,否则输出 00,无需空格或换行。

5 5
1 2 3 4 5
1 2
1 3
2 4
2 5
2 1 2
2 3 4
1 3 5 4
2 2 3
2 1 5
0110

提示

【样例解释】

11 次操作时简单路径上的点权少于 33 个。
22 次操作时简单路径上的点权分别为 1,2,3,41,2,3,4
33 次操作后点 1n1\sim n 的点权分别为 5,6,7,4,15,6,7,4,1
44 次操作时简单路径上的点权分别为 5,6,75,6,7
55 次操作时简单路径上的点权分别为 1,5,61,5,6

【数据范围】

本题采用捆绑测试

  • Subtask #1(8 pts8\text{ pts}):n,q3×103n,q\le3\times10^3
  • Subtask #2(8 pts8\text{ pts}):保证这棵树是一朵菊花。
  • Subtask #3(20 pts20\text{ pts}):每次修改操作时 x=yx=y
  • Subtask #4(24 pts24\text{ pts}):保证这棵树是一条链。
  • Subtask #5(40 pts40\text{ pts}):无特殊性质。依赖 Subtask #1 到 Subtask #4。

对于 100%100\% 的数据,1u,vn1051\le u,v\le n\le10^51q1051\le q\le10^5s{1,2}s\in\{1,2\}1ai,w23111\le a_i,w\le 2^{31}-1