洛谷 P10471 最大异或对 The XOR Largest Pair

题目描述

给定 N 个整数 A1​.A2​,⋯,AN​ 中选出两个进行异或计算,得到的结果最大是多少?

输入格式

第一行一个整数 N,第二行 N 个整数 A1​.A2​,⋯,AN​。

输出格式

一个整数表示答案。

输入输出样例

输入 #1复制

复制代码
3
1 2 3

输出 #1复制

复制代码
3

说明/提示

对于所有测试数据,1≤N≤105,保证 0≤Ai​<231。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int tr[N*32][2];
int idx;
int a[N];
void insert(int x)
{
    int cur=0;
    for(int i=31;i>=0;i--)
    {
        int path=(x>>i)&1;
        if(tr[cur][path]==0)
        tr[cur][path]=++idx;
        cur=tr[cur][path];
    }
}

int find(int x)
{
    int cur=0;
    int ret=0;
    for(int i=31;i>=0;i--)
    {
        int path=(x>>i)&1;
        if(tr[cur][path^1])
        {
            ret |=(1<<i);
            cur=tr[cur][path^1];
        }else{
            cur=tr[cur][path];
        }
    }
    return ret;
}
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        insert(a[i]);
    }
    int ret=0;
    for(int i=1;i<=n;i++)
    {
        ret=max(ret,find(a[i]));
    }
    cout<<ret<<endl;
    return 0;
}
相关推荐
2301_7765087213 小时前
分布式系统监控工具
开发语言·c++·算法
暮冬-  Gentle°13 小时前
C++与区块链智能合约
开发语言·c++·算法
愣头不青13 小时前
78.子集
数据结构·算法
Oueii13 小时前
C++中的代理模式实现
开发语言·c++·算法
3DVisionary13 小时前
从微观损伤到宏观断裂:DIC非接触测量在复合材料可靠性验证中的前沿实践
人工智能·数码相机·算法·机器学习·3d·复合材料·dic技术
sonnet-102913 小时前
拓扑排序的实现
java·c语言·开发语言·笔记·算法
米粒113 小时前
力扣算法刷题 Day 20
算法·leetcode·职场和发展
Shining059613 小时前
推理引擎系列(七)《InfiniLM》
人工智能·深度学习·算法·大模型·ai芯片·智能体·推理引擎
马猴烧酒.13 小时前
【面试八股|计算机网络】计算机网络常见面试题详解笔记
java·开发语言·网络·笔记·计算机网络·算法·面试
北顾笙98013 小时前
测开准备-day04数据结构力扣
数据结构·算法·leetcode