atcoder#ABC223H. [ABC223H] Xor Query

[ABC223H] Xor Query

配点 : 600600

問題文

長さ NN の正整数列 A=(A1,,AN)A = (A_1, \dots, A_N) が与えられます。

QQ 個のクエリを処理してください。i(1iQ)i \, (1 \leq i \leq Q) 番目のクエリでは、ALi,ALi+1,,ARiA_{L_i}, A_{L_i + 1}, \dots, A_{R_i} から 11 つ以上の要素を選び、それらの排他的論理和を XiX_i にできるかどうか判定してください。

排他的論理和とは

整数 a,ba, b のビットごとの排他的論理和 a xor ba\ \mathrm{xor}\ b は、以下のように定義されます。

  • a xor ba\ \mathrm{xor}\ b を二進表記した際の 2k(k0)2^k \, (k \geq 0) の位の数は、a,ba, b を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3 xor 5=63\ \mathrm{xor}\ 5 = 6 となります(二進表記すると: 011 xor 101=110011\ \mathrm{xor}\ 101 = 110)。

制約

  • 1N4×1051 \leq N \leq 4 \times 10^5
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 1Ai<2601 \leq A_i \lt 2^{60}
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • 1Xi<2601 \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

出力

QQ 行にわたって出力せよ。i(1iQ)i \, (1 \leq i \leq Q) 行目には、ALi,ALi+1,,ARiA_{L_i}, A_{L_i + 1}, \dots, A_{R_i} から 11 つ以上の要素を選び、それらの排他的論理和を XiX_i にできるならば Yes と、できないならば No と出力せよ。

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

11 つ目のクエリでは、A1,A3A_1, A_3 を選ぶことで排他的論理和を 77 にすることができます。

22 つ目のクエリでは、どのように要素を選んでも排他的論理和を 77 にすることはできません。

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