洛谷 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;
}
相关推荐
阿部多瑞 ABU6 分钟前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
郝学胜-神的一滴10 分钟前
并查集深度入门:从玄学抽象到 QuickFind & QuickUnion 源码实战
数据结构·c++·python·程序人生·算法·软件开发
比奇堡裤头村11 分钟前
统计学习方法——决策树
算法·决策树·学习方法
灵晔君24 分钟前
【Linux】进程控制(一)——进程创建、进程终止与进程等待
linux·c语言·算法
数模竞赛Paid answer9 小时前
2026年中青杯数学建模A题数学建模论文智能评估系统与多智能体优化方法求解全过程论文及程序
算法·数学建模·中青杯
银-豆豆10 小时前
数据结构与算法-动态规划、回溯与贪心
算法·动态规划
想吃火锅100511 小时前
【leetcode】200. 岛屿数量
算法·leetcode·职场和发展
Nil20812 小时前
leetcode 54螺旋矩阵
算法·leetcode·矩阵
依然鸣13 小时前
PTA团体程序设计天梯赛L1真题讲解L1-077-080
开发语言·c++·算法·深度优先·pat考试·图论
qeen8715 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法