8455: 异或(xor)
[Creator : ]
Description
[丛雨]有一个数列 $a_1,a_2,...,a_n$。
有一天,[芳乃]拿来了一个正整数 $X$。
丛雨是一个特别喜欢异或(xor)运算的孩子,她也很喜欢芳乃。
于是, 丛雨就想知道,自己能找到多少对数 $(i,j)$ 能够满足 $a_i \text{xor} a_j=X$。
两个数对 $(i_1, j_1)$ 与 $(i_2, j_2)$ 不同,当且仅当 $i_1≠i_2$ 或者 $j_1≠j_2$。
提示:异或运算在 C++里的算符是 ^。
Input
第一行两个正整数 $n,X$,分别表示数列的长度以及芳乃带来的整数。
第二行包含 $n$ 个正整数,表示数列 $a_n$。
Output
一行一个整数表示答案。
Constraints
对于 $50\%$ 的数据,$1≤n≤2,000$。
对于接下来 $20\%$ 的数据,$1≤a_i≤100,000$。
对于 $100\%$ 的数据,$1≤n≤1,000,000,1≤a_i≤2^{30}, 1≤X≤2^{30}$。
对于接下来 $20\%$ 的数据,$1≤a_i≤100,000$。
对于 $100\%$ 的数据,$1≤n≤1,000,000,1≤a_i≤2^{30}, 1≤X≤2^{30}$。
Sample 1 Input
5 1
1 4 2 2 5
Sample 1 Output
2
因为 4 xor 5=1,所以这两个数对是 (2,5) 和 (5,2)。