华为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 的二进制表示 101B 的二进制表示 011
AB 的差异值二进制为 110;相似值二进制为 001AB 的差异值十进制等于 6,相似值十进制等于 1,满足条件。

💻 输入

输入:一个 n 接下来 n 个正整数
数据范围: 1 <= n <= 10^5, 1 <= A[i] < 2^30

📤 输出

输出:满足差异值大于相似值的对数

💡 思路

差异值即为 按位异或 运算的结果;
相似值即为 按位与 运算的结果;
遍历运算并比较即可。

题解地址 📤

华为 OD 机试

华为OD机试(Online Judge)是华为公司用于招聘面试的一种在线评测系统,通常会在面试前的笔试环节中使用。华为OD机试可以帮助企业进行初步筛选,通过不同的测试用例和难度等级,考察应聘者的编程能力、算法理解、代码质量等多个维度的素质,从而更加全面地评估应聘者的实际能力,为企业筛选出更加适合自己需求的编程人才。

posted @ 2023-03-24 12:17  梦想橡皮擦  阅读(74)  评论(0编辑  收藏  举报