通过率 59% · 提交 116 · 通过 69
小慕正在处理一批正整数,对于任意两个正整数X和Y,他定义了它们之间的和: 差异值:将X、Y转换成二进制后,对于二进制的每一位,如果对应位置上的bit值不相同,则该位为1,否则为0; 相似值:将X、Y转换成二进制后,对于二进制的每一位,如果对应位置上的bit值都为1,则该位为1,否则为0。 现在小慕手上有n个正整数,B[0]到B[n-1],他想知道有多少对(i, j) (0≤i<j<n),使得Bi和Bj的。 假设X=5,Y=3;则X的二进制表示为101;Y的二进制表示为011; 那么X与Y的差异值二进制为110;相似值二进制为001; X与Y的差异值十进制等于6,相似值十进制等于1,满足条件。
这类题属于华为 OD 机考真题方向中「200分 / 数学」方向的高频题型,通常考察对「200分 / 数学」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
一个n 接下来n个正整数 数据范围:1 <= n <= 10^5,1 <= A[i] < 2^30
满足差异值大于相似值的对数
示例 1
输入示例
5 3 5 2 8 4
输出示例
8
满足条件的分别是(0,1), (0,3), (0,4), (1,2), (1,3), (2,3), (2,4), (3,4)
示例 2
输入示例
4 4 3 5 2
输出示例
4
满足条件的分别是(0,1) (0,3) (1,2) (2,3),共4对。
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有