题目描述
blablabla
样例
blablabla
#include <bits/stdc++.h>
using namespace std;
const int N = 100010,M = 3100010;\
int a[N],son[M][2];
int idx;
void insert(int x)
{
int p = 0;
for(int i=30;~i;i--)//最高位(第 30 位)到最低位(第 0 位)进行遍历
{
int &s = son[p][x>>i & 1];
if(!s) s = ++idx;
p = s;
}
}
int search(int x)
{
int p = 0,res = 0;
for(int i = 30;~i;i--)
{
int s = x>>i &1;
if(son[p][!s])
{
res += 1<<i;
p = son[p][!s];
}
else p = son[p][s];
}
return res;
}
int main()
{
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
scanf("%d",&a[i]);
insert(a[i]);
}
int res = 0;
for(int i=0;i<n;i++) res = max(res,search(a[i]));
cout<<res<<endl;
return 0;
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla