A. 小 Z 的异或

    传统题 1000ms 256MiB

小 Z 的异或

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

小 Z 有一个数列 a1,a2,,ana_1, a_2, \dots, a_n。有一天, 小 Y 拿来了一个正整数 XX。小 Z 是一个特别喜欢异或 (xor) 运算的孩子,他也很喜欢小 Y。

于是,小 Z 就想知道,自己能找到多少对数 (i,j)(i,j) 能够满足 aia_i xor\text{xor} aja_j == XX

  • 两个数对 (i1,j1)(i_1, j_1)(i2,j2)(i_2, j_2) 不同,当且仅当i1i2i_1 ≠ i_2 或者 j1j2j_1 ≠ j_2

提示:异或运算在 C++ 里的运算符是 ^

输入格式

第一行两个正整数 n,Xn,X,分别表示数列的长度以及小 Y 带来的整数。

第二行包含 nn 个正整数,表示数列 a1,a2,,ana_1,a_2,\dots,a_n

输出格式

一行一个整数表示答案。

样例 #1

样例输入 #1

5 1
1 4 2 2 5

样例输出 #1

2

提示

【样例解释】

因为 44 xor\text{xor} 5=15=1,所以这两个数对是 (2,5)(2,5)(5,2)(5,2)

【数据范围】

对于 50%50\% 的数据, 1n20001≤n≤2000

对于接下来 20%20\% 的数据,1ai1000001≤a_i≤100000

对于 100%100\% 的数据,1n1000000,1ai230,1X2301≤n≤1000000,1≤a_i≤2^{30}, 1≤X≤2^{30}

CSP-J模拟练习6

未参加
状态
已结束
规则
IOI(严格)
题目
5
开始于
2026-7-22 7:00
结束于
2026-7-24 19:00
持续时间
60 小时
主持人
参赛人数
11