题解:CF2153B Bitwise Reversion
温馨提示:本题无法评测。
对于&运算,其实就是二进制下的两个数的一中位运算。每一位全
本人第一直觉,先把 &运算的结果写出来,显然:
问题就变为:如何从上面几个表达式中求出原题有解或无解。其实也就是变为一道构造题。
那么,设 &运算法则:
若
若
若
根据结果可得,若
则推出结论:若
那么,很显然,若
则在原题有解情况下,
证明:
因为
所以若
所以若
证毕。
code
#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;
}
感谢观看。