洛谷 P3812 【模板】线性基

P3812 【模板】线性基
线性基模板题
代码:

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
const int maxn=100;

ll ans[maxn];
int n,cnt;

void kaven(){

    cnt=1;
    for(int i=50,j;i>=0;i--){

        for(j=cnt;j<=n;j++) if((ans[j]>>i)&1) break;
        if(j<=n){

            swap(ans[cnt],ans[j]);
            for(j=1;j<=n;j++) if(j!=cnt && (ans[j]>>i)&1) ans[j]^=ans[cnt];
            cnt++;
        }
    }
}

int main(){

    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%lld",&ans[i]);
    kaven();
    ll Max=0;
    for(int i=1;i<cnt;i++) Max^=ans[i];
    printf("%lld\n",Max);
}

猜你喜欢

转载自blog.csdn.net/qq_37960603/article/details/81560354
今日推荐