3 条题解

  • 0
    @ 2026-4-18 18:02:33

    #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; }

    信息

    ID
    54
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    165
    已通过
    85
    上传者