添加链接描述

bitmasks
太强了太强了太强了,二进制收下我的膝盖!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin >> t;
while (t--) {
long long a, b, k;
cin >> a >> b;
k = a;
for (int i = 0; i < 64; i++) {
a |= 1ll<< i; //把a的第 i 位(从右数起bai) 置1 相当于 a= a | (1ll<<i);
if (a > b) // |= &= 和+= -= 一样,运算一样
break;
else if (a > k)
k = a;
}
cout << k << "\n";
}
/*
long long a;
a = 1LL << 60; //注意:这里LL 或者 ll 都是把int转化成long long, 只能写LL 或ll,而且位置必须固定在这里
cout << a << "\n";
*/
return 0;
}
本文深入探讨了二进制位操作的高级应用,通过具体的C++代码示例,讲解了如何使用位掩码(bitmasks)进行高效的数据处理。特别关注了位操作中的置位(set bit)技巧,以及如何在循环中利用这一特性找到最优解。

3488

被折叠的 条评论
为什么被折叠?



