编程题
### 问题描述 小然在一次冒险中,发现了一种由 $N$ 个不同的整数组成的神秘阵列 $A$。 小然现在想要找出阵列中的一些配对,满足以下条件: - 对于每一对 $(i, j)$(满足 $1 \leq i < j \leq N$),$2 \cdot (A_i \oplus A_j) = A_i + A_j$,其中 $\oplus$ 表示按位异或操作。 你能帮助小然找到满足条件的配对的数量吗? ### 输入格式 输入的第一行包含一个整数 $N$,表示阵列的长度。 第二行包含 $N$ 个空格分隔的整数 $A_1, A_2, ..., A_N$,表示阵列。 ### 输出格式 输出一行,包含一个整数,表示满足条件的配对的数量。 ### 样例输入 ```text 4 1 2 3 6 ``` ### 样例输出 ```text 2 ``` ### 说明 在这个测试用例中,满足条件的配对有两对,分别是 $(1, 3)$ 和 $(2, 4)$。 - 对于配对 $(1, 3)$,我们有 $2 \cdot (A_1 \oplus A_3) = 2 \cdot (1 \oplus 3) = 2 \cdot 2 = 4$,同时 $A_1 + A_3 = 1 + 3 = 4$。 - 对于配对 $(2, 4)$,我们有 $2 \cdot (A_2 \oplus A_4) = 2 \cdot (2 \oplus 6) = 2 \cdot 4 = 8$,同时 $A_2 + A_4 = 2 + 6 = 8$。 ### 评测数据范围 $2 \leq N \leq 10^5$。 $1 \leq A_i \leq 2^{60} - 1$。
查看答案
赣ICP备20007335号-2