線性基【模板】
阿新 • • 發佈:2018-12-19
文章目錄
題目連結:
#include"bits/stdc++.h"
using namespace std;
typedef long long LL;
const int maxn=1e5+5;
const int MOD=1e9+7;
const int bit=62;
LL Line[bit+5];
void Insert(LL x)
{
for(int j=bit; j>=0; j--)
{
if(x&(1LL<<j))//這裡注意是1LL,容易錯
{
if(Line[j]==0)//如果這一行還全部是0
{
Line[j]=x;
return ;
}
else x^=Line[j];
}
}
}
LL getMax()
{
LL res=0;
for(int i=bit; i>=0; i--)
{
if((res^Line[i])>res)res^=Line[i];
}
return res;
}
int main()
{
int N;
while(cin>>N)
{
memset(Line,0,sizeof Line);
for(int i=1; i<=N; i++)
{
LL t;
cin>>t;
Insert (t);
}
cout<<getMax()<<endl;
}
}