编程题
### 问题描述 在奥特曼的世界中,也存在着很多选拔性考试,其中在一门名叫奥特曼数理基础的课程中,异或位运算和加法运算是赛文奥特曼每天都要面对的问题。他发现,这两种运算虽然看起来完全不同,但实际上它们之间存在着一种深度的联系。赛文奥特曼对异或运算和加法运算之间的联系非常好奇,他总觉得二者之间隐隐有某种联系,所以他想让你求解下列关于异或和加法的问题。 给定长度为 $N$ 的序列 $\\{a\\}$,求有多少对 $(i,j)$ 满足 $1 \leq i,j \leq n$,且 $a_i ⊕ a_j=a_i+a_j$,其中 $⊕$ 表示异或操作。 ### 输入格式 第一行包含 $1$ 个正整数 $N$。 第二行包含 $N$ 个整数,第 $i$ 个数表示 $a_i$。 ### 输出格式 输出共 $1$ 行,包含 $1$ 个整数,表示最终答案。 ### 样例输入 ```text 3 0 1 3 ``` ### 样例输出 ```text 5 ``` ### 样例解释 合法解有 $(1,1),(1,2),(2,1),(1,3),(3,1)$。 ### 评测数据规模 对于所有测评数据,$1 \leq N \leq 10^6,0 \leq a_i < 2^{20}$。
查看答案
赣ICP备20007335号-2