AcWing 143. 最大异或对
创始人
2024-11-14 08:06:07
0

在这里插入图片描述
思路:因为要求XOR最大值,所以两数XOR的时候两数二进制位要是最多的才行,一个数的二进制位是1的同时,另外一个数对应的二进制位是0,这样不一样的二进制位的数量最多时,两数XOR结果最大!

具体操作是先把a[i]以二进制形式插入到Trie树里面,然后Trie查询a【i】,一条路劲沿着a【i】这个二进制路径往深处搜索,从高位搜索,如果当前a【i】里面某一位是0,那么要找到a【i】这路径的对应的1的旁边的一条路径,如果不存在这路径就往下一层搜索,然后遍历a完了之后只花费了 O ( n ) O(n) O(n)时间
在这里插入图片描述

#include #define MAX 30000086 #define LEN 100086 using namespace std; int N,a[LEN],son[MAX][2],idx; void insert(int x){     int p=0;     for(int i=30;~i;--i){         int u=(x>>i)&1;//2进制的题意,Trie树只有2种状态,0和1         if(!son[p][u]) son[p][u]=++idx;         p=son[p][u];     } } int query(int  x){     int p=0,res=0;     for(int i=30;~i;--i){//~i等价于i>=0,i==-1是为OxFFFFF,取反之后就是0x0000,         int u=x>>i&1;         if(son[p][!u]){//存在相反2进制位,则把这个数算出来,然后往深一层遍历             res+=1<     cin>>N;     for(int i=0;i         cin>>a[i];         insert(a[i]);     }     int res=0;     for(int i=0;i         res=max(res,query(a[i]));     }     cout<

相关内容

热门资讯

据相关数据显示!约局吧怎么看有... 据相关数据显示!约局吧怎么看有没有挂,wepoker破解器有用吗,一贯存在有挂(有挂方法)1、进入到...
2026版攻略!wepoker... 2026版攻略!wepoker透视版下载,aapoker怎么设置提高好牌几率,原来确实有挂(有挂详情...
昨日!werplan外挂,aa... 昨日!werplan外挂,aapoker辅助器怎么用,真是确实有挂(了解有挂)1、不需要AI权限,帮...
第三方辅助挂!wpk插件,aa... 第三方辅助挂!wpk插件,aapoker公共底牌,切实真的有挂(有挂分享)1、aapoker公共底牌...
2026版教程!德扑圈透视,p... 2026版教程!德扑圈透视,pokemmo辅助工具,一贯确实有挂(详细教程)1、pokemmo辅助工...
为了进一步!wpk俱乐部怎么作... 为了进一步!wpk俱乐部怎么作弊,wepoker透视器免费,一直是有挂(有挂方法);1、为了进一步!...
这一现象值得深思!wepoke... 这一现象值得深思!wepoker高级辅助,wepoker怎么发冤家牌,竟然是有挂(有挂透明挂)wep...
方法辅助挂!哈糖大菠萝辅助器,... 方法辅助挂!哈糖大菠萝辅助器,hhpoker德州挂真的有吗,切实真的有挂(有挂教程)1、起透看视 h...
不少玩家反映!hhpoker可... 不少玩家反映!hhpoker可以控制吗,wepoker私人局怎么玩,一贯真的是有挂(有挂秘笈)1、不...
据悉!德普之星app安卓版破解... 据悉!德普之星app安卓版破解版,wpk显示有作弊,其实是有挂(果真有挂)德普之星app安卓版破解版...