2 条题解
- 
  1
C++ :
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,ans; int trie[N*32][2],tot=1; inline void insert(int x){ int p=1; for(int i=30;i>=0;i--){ int u=(x>>i)&1; if(!trie[p][u]) trie[p][u]=++tot; p=trie[p][u]; } } inline int search(int x){ int p=1,res=0; for(int i=30;i>=0;i--){ int u=(x>>i)&1; if(trie[p][!u]){ p=trie[p][!u]; res+=(1<<i); } else p=trie[p][u]; } return res; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; while(n--){ int x; cin>>x; insert(x); ans=max(ans,search(x)); } cout<<ans<<endl; } - 
  0
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,ans; int trie[N*32][2],tot=1; inline void insert(int x){ int p=1; for(int i=30;i>=0;i--){ int u=(x>>i)&1; if(!trie[p][u]) trie[p][u]=++tot; p=trie[p][u]; } } inline int search(int x){ int p=1,res=0; for(int i=30;i>=0;i--){ int u=(x>>i)&1; if(trie[p][!u]){ p=trie[p][!u]; res+=(1<<i); } else p=trie[p][u]; } return res; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; while(n--){ int x; cin>>x; insert(x); ans=max(ans,search(x)); } cout<<ans<<endl; }
 
- 1
 
信息
- ID
 - 54
 - 时间
 - 1000ms
 - 内存
 - 128MiB
 - 难度
 - 4
 - 标签
 - 递交数
 - 155
 - 已通过
 - 75
 - 上传者