怀旧书本
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, M = 3e6 + 10;
int son[M][2], idx;
int a[N], n;
void insert(int x) {
    int p = 0;
    for (int i = 30; ~i; --i) {
        int s = x >> i & 1;
        if (!son[p][s]) son[p][s] = ++idx;
        p = son[p][s];
    }
};
int query(int x) {
    int res = 0, p = 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() {
    cin >> n;
    for (int i = 0; i <n; ++i) {
        cin >> a[i];
        insert(a[i]);
    }
    int res = 0;
    for (int i = 0; i < n; ++i) {
        res = max(res, query(a[i]));
    }
    cout << res << endl;
    return 0;
}

作者:胡小旭
链接:https://www.acwing.com/activity/content/code/content/323381/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文为原创文章,欢迎分享,勿全文转载,如果内容你实在喜欢,可以加入收藏夹,说不定哪天故事又继续更新了呢。
本文地址:https://qoogle.top/%e6%9c%80%e5%a4%a7%e5%bc%82%e6%88%96%e5%af%b9%ef%bc%88trie%ef%bc%89-%e7%ae%97%e6%b3%95%e6%9d%bf%e5%ad%90/
最后修改日期:2020年5月23日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。