首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
不上岸不改名!.
无锡高等师范学校 算法工程师
关注
已关注
取消关注
上岸!
@不上岸不改名!.:
二进制差异数(C++ ) 刷题记录
题库目录2023华为OD备考【转载】题目描述对于任意两个正整数A和B,定义它们之间的差异值和相似值:**差异值:**A、B转换成二进制后,对于二进制的每一位,对应位置的bit值不相同则为1,否则为0;**相似值:**A、B转换成二进制后,对于二进制的每一位,对应位置的bit值都为1则为1,否则为0;现在有n个正整数A0到A(n-1),问有多少(i, j) (0<=i<j<n),Ai和Aj的差异值大于相似值。假设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输出描述满足差异值大于相似值的对数用例<table><tbody><tr><td>输入</td><td>4<br>4 3 5 2</td></tr><tr><td>输出</td><td>4</td></tr><tr><td>说明</td><td>满足条件的分别是(0,1)(0,3)(1,2)(2,3),共4对。</td></tr></tbody></table>题目解析题目描述中,A,B差异值其实就是A和B二进制的按位异或运算,即A ^ B。A,B相似值其实就是A和B二进制的按位与运算,即A & B。本题主要是找规律:本题的规律其实很容易发现,那就是看A,B的最高位1是否处于相同位,如果相同,比如A:1010B:1100那么差异值就是0110,相似值就是1000,可以发现,A,B最高位的1,在按位异或运算下被换成0,在按位与的运算下,变成了1,因此这种情况下,相似值必然大于差异值,不符合要求。如果A,B的最高位1不处于相同位,比如A:1010B:0110那么差异值就是1100,相似值就是0010,可以发现,A,B的最高位不同,因此按位异或运算下被换成了1,而按位与运算下变成了0,因此这种情况下,差异值必然大于相似值,符合要求。总结:差异值的最高位为1,相似值的最高位为0。因此我们只要找到最高位的1的种类,然后相互组合即可。C++#include<iostream> //头文件,用于输入输出#include<vector> //头文件,用于使用vector容器#include<algorithm> //头文件,用于使用算法函数#include<bitset> //头文件,用于使用二进制位操作using namespace std; //命名空间vector<int> split(string str) { //定义函数split,将字符串转换为整数vector vector<int> nums; //初始化整数vector while (str.find(" ") != string::npos) { //当字符串中还有空格时 int found = str.find(" "); //找到空格的位置 nums.push_back(stoi(str.substr(0, found))); //将空格前的字符串转换为整数并加入vector str = str.substr(found + 1); //将字符串更新为去除空格的后半部分 } nums.push_back(stoi(str)); //将最后一部分字符串转换为整数并加入vector return nums; //返回整数vector}int main() //主函数{ string param_str; //定义字符串param_str,用于存储输入的第一行字符串 getline(cin, param_str); //读取一行字符串 int n = stoi(param_str); //将字符串转换为整数 string op_str; //定义字符串op_str,用于存储输入的第二行字符串 getline(cin, op_str); //读取一行字符串 vector<int> nums = split(op_str); //将字符串转换为整数vector vector<int> bit_info(100, 0); //定义长度为100的整数vector,初始化为0 for (auto num : nums) { //遍历整数vector bitset<32> num_binary(num); //将整数转换为32位二进制数 string num_binary_str= num_binary.to_string(); //将二进制数转换为字符串 num_binary_str.erase(0,num_binary_str.find_first_not_of("0")); //去除字符串前面的0 int len = num_binary_str.size(); //计算字符串长度 if ("" == num_binary_str) { //如果字符串为空 bit_info[0]++; //将bit_info[0]加1 } else { //否则 bit_info[num_binary_str.size()]++; //将bit_info[字符串长度]加1 } } int res = 0; //定义整数res,初始化为0 for (int i = 0; i < bit_info.size(); i++) { //遍历bit_info for (int j = i + 1; j < bit_info.size(); j++) { //遍历bit_info res += bit_info[i] * bit_info[j]; //计算res的值 } } cout<< res; //输出res的值 return 0; //程序结束}
点赞 0
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-07 23:46
浙江工业大学 Java
破防了,实习了五个月后找不到实习了
今天真的彻底破防了从来没在互联网发过帖子,甚至评论都没有,只敢点赞,但今天真的破防了今年2月份的时候一段实习也没有,八股也背不熟,2月中刚过元宵回学校,春招也还没开始就投了,投了一个星期大概投出去100,200份,面了几次,就拿到了两个实习offer,当时简历一段实习都没有,就一个自己课设(与黑马点评进行了结合),再加上一个MiniRPC如简历所示,然后就去实习了,虽然也没学到什么东西,很多时间花在了没有意义的低代码AI应用开发上。然后实习了五个月吧,六月底回深圳,想着现在有一段五个月的实习,八股也背的很熟,把简历的课设项目改成了实习之后,想继续找实习,于是投了大概170份出去,公司官网投了2...
纯爱战神_a:
浙工大真的不再考虑考虑回杭州找吗
你如果觉得你的实习经历质量不够可以找我之前跟的老师,可以包装大厂项目,这样你还有更多机会
投递字节跳动等公司8个岗位
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
07-10 12:28
有没有和我一样的
汇报一下进度,7.10日仍然还在找实习中...offer快来吧,快来吧从六月找到七月,我的实习你在哪里?!!
点赞
评论
收藏
分享
06-19 11:01
已编辑
郑州升达经贸管理学院 视频编辑
25应届生找工作
年龄:22 薪资:5000+学历:本科专业:网络与新媒体期望:视频剪辑师,摄影师要求:做好双休,大小周也可以,要有五险工作地点:杭州
求offer的大角牛:
你可以去****上投投看看,牛客大多数是it开发,技术支持,测试类的工作
点赞
评论
收藏
分享
06-09 23:07
已编辑
湖北工程学院新技术学院 运营
求捞一手
有没有哥哥姐姐捞一手啊,我一周内想去北京发展。°(°¯᷄◠¯᷅°)°。
我在牛客求捞
点赞
评论
收藏
分享
07-09 19:25
门头沟学院 Java
多益好逆天啊
这是要把每一个投校招的都开盒吗?
26届之耻将大局逆转:
裁人的时候一次性追回餐费
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
四段实习终大厂 如此牺牲为哪般
1.7W
2
...
双非二本靠一张嘴拿下美团
1.2W
3
...
通过实习工资给父母换手机
9199
4
...
我从来没想过我会出轨
5562
5
...
淘天lastday知无不言
4735
6
...
暂且原谅这个世界一下下
4216
7
...
三次入职字节,我终于成为了一名正式的bytedancer
4084
8
...
儿时记忆在梦中闪回,一觉醒来继续做“大人”
3114
9
...
死喽,面试前因为网名被HR制裁咯
3057
10
...
刚来深圳第一天就被宰1650
3043
创作者周榜
更多
正在热议
更多
#
实习生的蛐蛐区
#
50115次浏览
388人参与
#
夸夸我的求职搭子
#
200056次浏览
1917人参与
#
你认为小厂实习有用吗?
#
18923次浏览
241人参与
#
三一重工求职进展汇总
#
13246次浏览
60人参与
#
应届生,你找到工作了吗
#
20125次浏览
148人参与
#
硬件应届生薪资是否普遍偏低?
#
75258次浏览
518人参与
#
材料人,你们签了哪个公司
#
7376次浏览
17人参与
#
说说你知道的学历厂
#
35367次浏览
207人参与
#
在职场上,你最讨厌什么样的同事
#
15156次浏览
151人参与
#
lastday知无不言
#
57872次浏览
474人参与
#
计算机有哪些岗位值得去?
#
15852次浏览
147人参与
#
中核求职进展汇总
#
20668次浏览
152人参与
#
下班后的时间你怎么安排
#
9575次浏览
137人参与
#
面试尴尬现场
#
29845次浏览
205人参与
#
你找工作的时候用AI吗?
#
17401次浏览
223人参与
#
哪一瞬间觉得自己长大了
#
8891次浏览
197人参与
#
社会教会你的第一课
#
34134次浏览
439人参与
#
如何拒绝/反向PUA
#
69072次浏览
356人参与
#
电网笔面经互助
#
36723次浏览
355人参与
#
实习生应该准时下班吗
#
231443次浏览
1436人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务