#AT1948. H - Xor Query

H - Xor Query

H - Xor 查询

得分:600 分

问题描述

给定一个由 $N$ 个正整数 $A = (A_1, \dots, A_N)$ 组成的序列。

请处理 $Q$ 个查询。在第 $i$ 个查询中 $(1 \leq i \leq Q)$,判断是否可以从 $A_{L_i}, A_{L_i + 1}, \dots, A_{R_i}$ 中选择一个或多个元素,使得它们的异或值为 $X_i$。

什么是异或?

整数 $A$ 和 $B$ 的按位异或,记作 $A\ \mathrm{XOR}\ B$,定义如下:

  • 当将 $A\ \mathrm{XOR}\ B$ 写成二进制表示时,$2^k$ 位($k \geq 0$)的数字为 $1$ 当且仅当 $A$ 和 $B$ 中恰好有一个数字为 $1$,否则为 $0$。
例如,我们有 $3\ \mathrm{XOR}\ 5 = 6$(二进制表示:$011\ \mathrm{XOR}\ 101 = 110$)。

约束条件

  • $1 \leq N \leq 4 \times 10^5$
  • $1 \leq Q \leq 2 \times 10^5$
  • $1 \leq A_i \lt 2^{60}$
  • $1 \leq L_i \leq R_i \leq N$
  • $1 \leq X_i \lt 2^{60}$
  • 所有输入的值都是整数。

输入

从标准输入中按以下格式给出输入:

NN QQ

A1A_1 \ldots ANA_N

L1L_1 R1R_1 X1X_1

\vdots

LQL_Q RQR_Q XQX_Q

输出

输出 $Q$ 行。第 $i$ 行 $(1 \leq i \leq Q)$ 应输出 Yes 如果可以选择 $A_{L_i}, A_{L_i + 1}, \dots, A_{R_i}$ 中的一个或多个元素,使得它们的异或值为 $X_i$,否则输出 No


5 2
3 1 4 1 5
1 3 7
2 5 7
Yes
No

在第一个查询中,你可以选择 $A_1$ 和 $A_3$,它们的异或值为 $7$。

在第二个查询中,没有办法选择元素使得它们的异或值为 $7$。


10 10
8 45 56 9 38 28 33 5 15 19
10 10 53
3 8 60
1 10 29
5 7 62
3 7 51
8 8 52
1 4 60
6 8 32
4 8 58
5 9 2
No
No
Yes
No
Yes
No
No
No
Yes
Yes