专栏文章
题解:CF2153B Bitwise Reversion
CF2153B题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mindo5op
- 此快照首次捕获于
- 2025/12/02 00:42 3 个月前
- 此快照最后确认于
- 2025/12/02 00:42 3 个月前
温馨提示:本题无法评测。
对于
本人第一直觉,先把 每个
问题就变为:如何从上面几个表达式中求出原题有解或无解。其实也就是变为一道构造题。
那么,设 的第 位为 ,其余同理。那么,根据
若 则
若 则
若 则
根据结果可得,若 则 ,其余同理。
则推出结论:若 其中至少两个为 ,则 全为 。
那么,很显然,若 原题有解。
则在原题有解情况下,。
证明:
因为 或 或 则 全为 。
所以若 其中至少一个不为 ,则上述三个表达式全都不为 。
所以若 ,原题有解。
证毕。
对于
&运算,其实就是二进制下的两个数的一中位运算。每一位全 为 ,否则为 。本人第一直觉,先把 每个
&运算的结果写出来,显然:问题就变为:如何从上面几个表达式中求出原题有解或无解。其实也就是变为一道构造题。
那么,设 的第 位为 ,其余同理。那么,根据
&运算法则:若 则
若 则
若 则
根据结果可得,若 则 ,其余同理。
则推出结论:若 其中至少两个为 ,则 全为 。
那么,很显然,若 原题有解。
则在原题有解情况下,。
证明:
因为 或 或 则 全为 。
所以若 其中至少一个不为 ,则上述三个表达式全都不为 。
所以若 ,原题有解。
证毕。
code
CPP#include<bits/stdc++.h>
using namespace std;
int main( )
{
int t;
cin>>t;
while(t--)
{
int x,y,z;
cin>>x>>y>>z;
if((x&y)==(y&z)&&(x&z)==(y&z)) cout<<"yEs\n";
else cout<<"No\n";
}
return 0;
}
感谢观看。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...