华为OD机试 统计差异值大于相似值二元组个数
🚀 本期题目:统计差异值大于相似值二元组个数
🔍 题目
题目: 对于任意两个正整数 A 和 B ,定义它们之间的差异值和相似值:
差异值:A、B 转换成二进制后,对于二进制的每一位,对应位置的bit
值不相同则为1
,否则为0
;
相似值:A、B 转换成二进制后,对于二进制的每一位,对应位置的bit
值都为1
则为1
,否则为0
;
现在有 n
个正整数 $A_0$
到 $A_{n−1}$
,问有多少对 (i,j)(0≤i<j<n)
,$A_i$
和 $A_j$
的差异值大于相似值。
假设 A=5
,B=3
;
则 A
的二进制表示 101
;B
的二进制表示 011
;
则 A
与 B
的差异值二进制为 110
;相似值二进制为 001
; A
与 B
的差异值十进制等于 6
,相似值十进制等于 1
,满足条件。
💻 输入
输入:一个 n
接下来 n
个正整数
数据范围: 1 <= n <= 10^5, 1 <= A[i] < 2^30
📤 输出
输出:满足差异值大于相似值的对数
💡 思路
差异值即为 按位异或 运算的结果;
相似值即为 按位与 运算的结果;
遍历运算并比较即可。
题解地址 📤
- ⭐️ 华为 OD 机考 Python https://blog.csdn.net/hihell/article/details/129052816
- ⭐️ 华为 OD 机考 C++ https://blog.csdn.net/hihell/article/details/129201733
- ⭐️ 华为 OD 机考 JS https://blog.csdn.net/hihell/article/details/129351484
- ⭐️ 华为 OD 机考 JAVA https://blog.csdn.net/hihell/article/details/129548218
- ⭐️ 华为 OD 机考 Golang https://blog.csdn.net/hihell/article/details/129341397
- ⭐️ 华为 OD 机考真 C 语言 https://blog.csdn.net/hihell/article/details/129371451
华为 OD 机试
华为OD机试(Online Judge)是华为公司用于招聘面试的一种在线评测系统,通常会在面试前的笔试环节中使用。华为OD机试可以帮助企业进行初步筛选,通过不同的测试用例和难度等级,考察应聘者的编程能力、算法理解、代码质量等多个维度的素质,从而更加全面地评估应聘者的实际能力,为企业筛选出更加适合自己需求的编程人才。