B. 异或 (xor)

    传统题 文件IO:xor 1000ms 256MiB

异或 (xor)

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

题目描述

有一个数列 a1,a2,...,ana_1, a_2, ..., a_n 。有一天,小z 拿来了一个正整数 XX 。同时 小z 是一个特别喜欢异或 (xor) 运算的孩子。于是,他想知道,自己能找到多少对数 (i,j)(i,j) 能够满足 ai xor aj=Xa_i\ xor \ a_j = X 。 两个数对 (i1,j1)(i_1, j_1)(i2,j2)(i_2, j_2) 不同,当且仅当 i1i2i_1 ≠ i_2 或者 j1j2j_1 ≠ j_2

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

输入格式(xor.in)

第一行两个正整数 nn , XX ,分别表示数列的长度以及小z 带来的整数。

第二行包含 nn 个正整数,a1,a2,...,ana_1, a_2, ..., a_n

输出格式(xor.out)

一行一个整数表示答案。

5 1
1 4 2 2 5
2
5 1
2 3 3 3 2
12

提示

样例1解释:

因为 4 xor 5=14\ xor\ 5 = 1 ,所以这两个数对是 (2,5)(2,5)(5,2)(5,2)

数据范围

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

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

对于 100%100\% 的数据,$1 \le n \le 1000000, 1 \le a_i \le 2^{30}, 1 \le X \le 2^{30}$ 。

2025乔斯复赛集训十连测-(第九场)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2025-10-29 1:00
结束于
2025-11-3 1:00
持续时间
120 小时
主持人
参赛人数
33