报错
第七行end数组
虽然知道不需要
但加上又不知为何不对
故向各位神仙哥哥姐姐求助
(>__<)thank you
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
const int N=1e5+5;
int n,a[N],trie[N*32][2],tot=1,ans;
bool end[N*31];
void insert(int t){
int p=1;
for(int i=30;i>=0;i--){
int x=(t>>i)&1;
if(trie[p][x]==0)trie[p][x]=++tot;
p=trie[p][x];
}
end[p]=1;
}
int search(int t){ ``
int p=1,ans=0;
for(int i=30;i>=0;i--){
int x=(t>>i)&1;
if(trie[p][x^1]==0)p=trie[p][x];
else {
p=trie[p][x^1];//<=>p=trie[p][!x];
ans|=1<<i;
}
}
return ans;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
insert(a[i]);
ans=max(ans,search(a[i]));
}
printf("%d",ans);
}