3 条题解

  • 2
    @ 2021-8-7 20:49:57

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

      • 0
        @ 2025-4-9 20:15:55

        #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
        难度
        3
        标签
        递交数
        165
        已通过
        85
        上传者