#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$。
约束条件
- $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}$
- 所有输入的值都是整数。
输入
从标准输入中按以下格式给出输入:
输出
输出 $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