P3812 【模板】线性基

题目链接

https://www.luogu.org/record/21832981

代码

#include <bits/stdc++.h>
const int mod=1e9+7;
const int maxn=21;
using namespace std;
typedef long long ll;
int n;
ll d,p[100],ans;
void get(ll x){
    for(int i=62;i>=0;i--){
        if(!(x>>(ll)i))continue;
        if(!p[i]){
            p[i]=x;
            break;
        }
        x^=p[i];
    }
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>d;
        get(d);
    }
    for(int i=62;i>=0;i--){
        if((ans^p[i])>ans){
            ans^=p[i];
        }
    }
    cout<<ans<<endl;
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注