首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
位运算之谜
6条解析
开通博客写题解
__故人__
发表于 2020-09-21 14:27:04
分析 对于加法我们可以考虑为,两个为 ,那么该位变为 ,下一位 。而异或满足两个为 ,那么该位变为 。而下一位 ,则可以考虑哪些位要进位,所以我们得到第一个式子 。但是我们要考虑到进位之后 和 要没有同一个位为 ,这才是可行的方案。 代码 #include<bits/std
展开全文
Dear㉿You
发表于 2020-09-29 09:10:25
分析 位运算之谜让我来口胡一把。首先a+b的值为x,a&b的值为y,说明a,b最小都得是y。然后就只剩下x - 2 * y供我们分配。 然后根据与的性质,0&0=0,0&1=0,1&1=1,也就是说,当我们把x - 2 * y表示成二进制,只要随便分这其中的1 就
展开全文
Kur1su
发表于 2020-09-26 23:04:33
Description Solution 基础太差了,没想出这题。对于 其实是二进制的不进位运算, 因此有公式。该公式表示 二进制位上均为 1 的相加会进位。那么 其中需要满足 且 与 二进制位上不能有相同的,否则输出-1. Code #include<bits/stdc++.h
展开全文
Bernard5
发表于 2020-09-22 19:26:25
已知 我们知道与是半加,所以必定满足,并且,固定的时候,当且仅当时,取得最小值。 也就是说: 当的时候, 当的时候,无法满足 当的时候,我们先假设,并且按照二进制位展开: 假设,我们先设,并且按照二进制位展开: //a 1001001 //b 1001001 要满足,并且要增大,应该
展开全文
灯又烬
发表于 2020-09-20 10:45:43
题意 题解 将a与b看为2进制数,根据按位与性质易知在a与b不为0的情况下,一定是大于等于的,只需要判断此数所剩的2进制位,是否均为a&b为0的2进制位。 code #include <bits/stdc++.h> #define reg register #define ll
展开全文
秃头小白
发表于 2020-09-23 19:47:05
题目链接 https://ac.nowcoder.com/acm/contest/7412/D 解题思路 (来自:zzugzx)对于二进制的某一位来说,a xor b表示不进位的加法,a & b<<1可以表示加法的进位。所以就有了公式a+b=a xor b+2∗(a &
展开全文
查看本题
查看本题讨论
相关比赛
7412-牛客小白月赛28
进入比赛
7714-牛客小白月赛28(重现赛)@牛客77640305号
进入比赛
27637-牛客小白月赛
进入比赛
49585-私人
进入比赛
52919-test
进入比赛
等你来战
查看全部
牛客周赛 Round 93
报名截止时间:2025-05-18 21:00
衡阳师范学院第二十五届程序设计竞赛(同步赛)
报名截止时间:2025-06-08 18:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题