异或 (xor)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
有一个数列 。有一天,小z 拿来了一个正整数 。同时 小z 是一个特别喜欢异或 (xor) 运算的孩子。于是,他想知道,自己能找到多少对数 能够满足 。 两个数对 与 不同,当且仅当 或者 。
提示:异或运算在C++里的算符是 ^。
输入格式(xor.in)
第一行两个正整数 , ,分别表示数列的长度以及小z 带来的整数。
第二行包含 个正整数,。
输出格式(xor.out)
一行一个整数表示答案。
5 1
1 4 2 2 5
2
5 1
2 3 3 3 2
12
提示
样例1解释:
因为 ,所以这两个数对是 和 。
数据范围
对于 的数据, 。
对于接下来 的数据, 。
对于 的数据,$1 \le n \le 1000000, 1 \le a_i \le 2^{30}, 1 \le X \le 2^{30}$ 。