A. XORwice(水题)

吐槽:虽然是水题,,但是没有找到思路。。

题意:输入a,b,找到一个x,使(a^x)+(b^x)的值最小。

题解:还是博客大佬的思路好懂一些。

二进制,只有0 1两种情况。

当a=0,b=1时,x无论取0 还是1,都会得到1。同理,a=1,b=0,也是1。

当a=1,b=1时,x取1,就会得到0;

当a=0,b=0时,x取0,就会得到0;(尽可能让位上的0变多,肯定会让数尽量的小啦)。

发现a,b的值对应的结果正好是异或的结果(a^b)

ACcode:

 

int main()
{
int t;
cin >> t;
while (t--)
{
int a, b;
cin >> a >> b;
cout << (a ^ b) << endl;
}
return 0;
}

 

posted @ 2021-02-03 23:13  Uiney  阅读(44)  评论(0编辑  收藏  举报