The XOR Largest Pair(01trie模板题)

The XOR Largest Pair

https://ac.nowcoder.com/acm/problem/50993

题意:给你一堆数,问你从里面跳出来两个数异或和最大。
(菜鸡第一次用字典树做题)
题解:之前没用过字典树做题,,看了大佬的题解,才知道字典树还有这种妙用。
对于二进制,如果我们想让它最大,(一点贪心的小思想)那么最高位的1 我们是要尽量保留的,(再就是保留次高位.....)。
对此我们建立一颗字01字典树,一条链对应的是一棵树的二进制形式,每次查询一个数字与已经放进去的最大异或值,

如何异或最大,就是在二进制下 与查询的这个数字 每位尽可能不同 **
**当然前提下是从 最高位到最低位进行遍历(最高位权重大)。

所以根节点的两个孩子代表的是最高位的二进制数是几

代码:

/*Keep on going Never give up*/
//#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>

#define int long long
#define endl '\n'
#define Accepted 0
#define AK main()
#define I_can signed
using namespace std;
const int maxn =1e7+10;
const int MaxN = 0x3f3f3f3f;
const int MinN = 0xc0c0c00c;
typedef long long ll;
const int inf=0x3f3f3f3f;
const ll mod=1e9+7;
using namespace std;

int n,total;
int trie[maxn][2];


void ins(int x){
    int node=0;
    for(int i=31;i>=0;i--){
        int t=(x>>i)&1;
        if(!trie[node][t]) trie[node][t]=++total;
        node=trie[node][t];
    }
}

int ifind(int x){
    int node=0,res=0;
    for(int i=31;i>=0;i--){
        int temp=(x>>i)&1,t=temp^1;
        if(trie[node][t]) node=trie[node][t],res=res<<1|1;
        else node=trie[node][temp],res<<=1;
    }
    return res;
}


signed main()
{
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    int ans=0;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        ans=max(ans,ifind(x));
        ins(x);
    }
    cout<<ans<<endl;
    return 0;
}
题解 文章被收录于专栏

主要写一些题目的题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
感觉他们一点都不了解现在这个社会就业有多难,已经在牛客刷到好多篇&nbsp;延毕的帖子了,延毕就会导致已经找好的工作就没了,还得重新再找,学校和老师们是怎么想的呢????看到学生丢失工作会开心吗&nbsp;就业数据都在造假,真实的就业困难不去解决&nbsp;一个个真是好样的
从明天开始狠狠卷JV...:学生看到的是导师不放实习导致offer黄了。 导师看到的是招进来的学生吃自己补助和自己的招生名额,却没给自己升迁带来任何帮助,还要跑路。 根本利益的不一致,最主要留校的导师大概率是职场上招聘失败的,被迫留校的,什么牛鬼蛇神都会有
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:22
投了几百份简历,专业和方向完全对口,都已读不回。尝试改了一下学校,果然有奇效。
steelhead:这不是很正常嘛,BOSS好的是即便是你学院本可能都会和聊几句,牛客上学院本机会很少了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务