题目大意:
从一个N个数集合中找出一个数K,使得这个数与给出的S异或结果最大。
解题思路:
涉及到异或问题,将给的数都用二进制形式表示出来。为了使异或结果最大,即从高位开始选,K的这一位为1时选S的这一位为0的,为0时刚好相反。
然后用字典树进行存储分解后的二进制表示就OK了。
Mycode:
1 |
|
快乐咸鱼每一天,咸鱼咸鱼咸~
从一个N个数集合中找出一个数K,使得这个数与给出的S异或结果最大。
涉及到异或问题,将给的数都用二进制形式表示出来。为了使异或结果最大,即从高位开始选,K的这一位为1时选S的这一位为0的,为0时刚好相反。
然后用字典树进行存储分解后的二进制表示就OK了。
1 | #include <cstdio> |
WeChat Pay
Alipay