#P2025052901. 异或

异或

题目描述

给你一个长度为 nn 的数列 a1,a2,,ana_1, a_2, \ldots, a_n

接下来有 qq 次询问,每次询问给你两个整数 xxkk,你需要判断数列 aa 中存在多少个元素与 xx 的异或和 k\le k

也就是说,你需要统计存在多少个下标 ii 满足 1in1 \le i \le naixka_i \oplus x \le k。这里,\oplus 是异或符号。

输入格式

第一行,两个整数 nnqq,以一个空格分隔,分别表示数列长度以及询问次数。

第二行,nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,以空格分隔。

接下来 qq 行,每行包含两个整数 xxkk,以空格分隔,表示一次询问。

输出格式

对于每次询问,输出一行,包含一个整数,表示答案(即存在多少个 aia_i 满足 aixka_i \oplus x \le k)。

样例

5 2
1 2 3 4 5
2 3
5 3
3
2
12 10
8 2 3 7 6 15 20 13 5 12 1 10
7 5
3 11
8 15
6 20
8 10
5 15
8 10
7 16
13 0
7 11
5
8
11
12
7
11
7
11
1
9

说明/提示

样例 1 解释

第一次询问,x=2x = 2k=3k = 3

  • a1=1,12=33a_1 = 1, 1 \oplus 2 = 3 \le 3 满足条件;
  • a2=2,22=03a_2 = 2, 2 \oplus 2 = 0 \le 3 满足条件;
  • a3=3,32=13a_3 = 3, 3 \oplus 2 = 1 \le 3 满足条件;
  • a4=4,42=6>3a_4 = 4, 4 \oplus 2 = 6 \gt 3 不满足条件;
  • a5=5,52=7>3a_5 = 5, 5 \oplus 2 = 7 \gt 3 不满足条件。

第二次询问,x=5x = 5k=3k = 3

  • a1=1,15=4>3a_1 = 1, 1 \oplus 5 = 4 \gt 3 不满足条件;
  • a2=2,25=7>3a_2 = 2, 2 \oplus 5 = 7 \gt 3 不满足条件;
  • a3=3,35=6>3a_3 = 3, 3 \oplus 5 = 6 \gt 3 不满足条件;
  • a4=4,45=13a_4 = 4, 4 \oplus 5 = 1 \le 3 满足条件;
  • a5=5,55=03a_5 = 5, 5 \oplus 5 = 0 \le 3 满足条件。

数据规模与约定

  • 对于 60%60\% 的数据,n,q2000n,q \le 2000ai,x,k<210a_i, x, k \lt 2^{10}
  • 对于 100%100\% 的数据,1n,q21051 \le n,q \le 2 \cdot 10^50ai,x,k<2200 \le a_i, x, k \lt 2^{20}