题解 P6861 【[RC-03] 难题】
WarningQAQ · · 题解
位运算的题都挺有意思的。
分析:
给一个数
首先根据样例分析:
异或得
看不出什么 , 再来想一组样例:
异或得
所以就找到了规律:
找到与
也就是在二进制下每一位都与
换言之,最终的答案就是二进制下
代码:
#include "cstdio"
#define ull unsigned long long//不开ull见祖宗
ull n, k, ans;
int main() {
scanf("%llu", &n);
k = n;
while (k) {
k >>= 1;
ans = ans << 1 | 1;
}
printf("%llu", ans << 1);
}