#AT2356. Ex - XOR Sum of Arrays

Ex - XOR Sum of Arrays

当前没有测试数据。

Ex - 数组的XOR和

得分:600 分

问题描述

对于长度为$M$的非负整数序列$B=(B_1,B_2,\dots,B_M)$和$C=(C_1,C_2,\dots,C_M)$,定义$B$和$C$的XOR和 $S(B,C)$为长度为$M$的非负整数序列$(B_1\oplus C_1, B_2\oplus C_2, ..., B_{M}\oplus C_{M})$。这里,$\oplus$表示按位异或。
例如,若$B = (1, 2, 3)$,$C = (3, 5, 7)$,则$S(B, C) = (1\oplus 3, 2\oplus 5, 3\oplus 7) = (2, 7, 4)$。

你将得到一个非负整数序列$A = (A_1, A_2, \dots, A_N)$。记$A(i, j)$为由$A$的第$i$个至第$j$个元素组成的连续子序列。接下来你将得到$Q$个查询,并需要对它们进行处理。

每个查询给出整数$a$、$b$、$c$、$d$、$e$和$f$,它们范围在$1$至$N$之间(包含$1$和$N$)。这些整数满足$a \leq b$、$c \leq d$、$e \leq f$、$b-a=d-c$。若$S(A(a, b), A(c, d))$ 严格小于$A(e, f)$,则输出Yes;否则,输出No

什么是按位异或? 两个整数$a$和$b$的按位异或(exclusive logical sum)$a \oplus b$的定义如下:
  • 在$a \oplus b$的二进制表示中,若$a$和$b$相应位都为$1$或两者都为$0$,则在$2^k$(其中$k \geq 0$)的位置上为$0$,否则为$1$。
例如,$3 \oplus 5 = 6$(二进制表示为:$011 \oplus 101 = 110$)。
什么是序列的字典序?

序列$A = (A_1, \ldots, A_{|A|})$ 严格字典序小于序列$B = (B_1, \ldots, B_{|B|})$当且仅当以下条件之一成立:

  1. $|A|<|B|$且$(A_{1},\ldots,A_{|A|}) = (B_1,\ldots,B_{|A|})$。
  2. 存在一个整数$1\leq i\leq \min\{|A|,|B|\}$满足以下两个条件:
    • $(A_{1},\ldots,A_{i-1}) = (B_1,\ldots,B_{i-1})$。
    • $A_i < B_i$。

约束条件

  • $1 \leq N \leq 5 \times 10^5$
  • $0 \leq A_i \leq 10^{18}$
  • $1 \leq Q \leq 5 \times 10^4$
  • $1 \leq a \leq b \leq N$
  • $1 \leq c \leq d \leq N$
  • $1 \leq e \leq f \leq N$
  • $b - a = d - c$
  • 输入中的所有值都是整数。

输入

从标准输入中以如下格式给出输入,其中$\text{query}_i$表示第$i$个查询:

NN QQ

A1A_1 A2A_2 \dots ANA_N

query1\text{query}_1

query2\text{query}_2

\vdots

queryQ\text{query}_Q

查询的格式如下:

``` $a$ $b$ $c$ $d$ $e$ $f$ ```

输出

输出$Q$行。第$i$行应输出第$i$个查询的答案。


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

对于第一个查询,有$A(1, 3) = (1, 2, 3)$和$A(2, 4) = (2, 3, 1)$,因此$S(A(1,3),A(2,4)) = (1 \oplus 2, 2 \oplus 3, 3 \oplus 1) = (3, 1, 2)$。而此序列在字典序上大于$A(1, 4) = (1, 2, 3, 1)$,因此答案为No
对于第二个查询,有$S(A(1,2),A(2,3)) = (3, 1)$,$A(3,4) = (3, 1)$,它们相等,因此答案为No


10 10
725560240 9175925348 9627229768 7408031479 623321125 4845892509 8712345300 1026746010 4844359340 2169008582
5 6 5 6 2 6
5 6 1 2 1 1
3 8 3 8 1 6
5 10 1 6 1 7
3 4 1 2 5 5
7 10 4 7 2 3
3 6 1 4 7 9
4 5 3 4 8 9
2 6 1 5 5 8
4 8 1 5 1 9
Yes
Yes
Yes
Yes
No
No
No
No
No
No