luogu3812 【模板】线性基
Code:
#include <cstdio>
#include <algorithm>
#define ll long long
#define N 64
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
ll d[N];
void insert(ll x)
{
for(int i=51;i>=0;--i)
{
if(x&((ll)1<<i))
{
if(d[i]) x^=d[i];
else
{
d[i]=x;
break;
}
}
}
}
ll qmax()
{
ll x=0;
for(int i=51;i>=0;--i)
{
if(d[i])
{
if((x^d[i])>x) x^=d[i];
}
}
return x;
}
int main()
{
// setIO("input");
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;++i)
{
ll a;
scanf("%lld",&a),insert(a);
}
printf("%lld\n",qmax());
return 0;
}

浙公网安备 33010602011771号