您当前的位置: 首页 > 

对方正在debug

暂无认证

  • 4浏览

    0关注

    399博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Strange Test(或/位运算)

对方正在debug 发布时间:2022-02-03 19:13:49 ,浏览量:4

题目 题意:给定a,b,现在有3种操作

  • a = a + 1
  • b = b + 1
  • a = a|b 问最少需要多少次操作,才能使a==b

官方题解 对于第三种操作,只能进行一次,因为通过a=a|b后,有b=b,从高位到地位,有以下规则: 如果a当前位为0,b当前位为0,则b1取0 如果a当前位为0,b当前位为1,则b1取1 如果a当前位为1,b当前位为1,则b1取1 如果a当前位为1,b当前位为0,则b1取1,且b1的更低位都取0(因为进位后,都取0了)

官方代码

#include
using namespace std; 
 
 
int main() {
    int t;
    cin >> t;
    while(t--) {
        int a, b;
        cin >> a >> b;
        int ans = b - a;
        // 枚举a1 
        for(int a1 = a; a1 = 0; i--) {
                if((b >> i) & 1) {
                    b1 ^= (1  i) & 1) {
                        b1 ^= (1             
关注
打赏
1664895754
查看更多评论
0.0768s