线性基

发布时间 2023-04-23 15:49:03作者: FJOI

模板

Code
#include<bits/stdc++.h>
#define int long long
using namespace std;
int read(){
	int x=0,f=1;char c=getchar();
	while(c>'9' || c<'0'){if(c=='-')f=-1;c=getchar();}
	while(c>='0' && c<='9'){x=(x<<1)+(x<<3)+(c^48);c=getchar();}
	return x*f;
}
int n,d[110];
signed main(){
	n=read();
	for(int i=1;i<=n;i++){
		int x=read();
		for(int j=49;j>=0;j--)
			if(x&(1ll<<j))
				if(d[j])x^=d[j];
				else{d[j]=x;break;}
	}
	int ans=0;
	for(int i=49;i>=0;i--){
		if(!(ans&(1ll<<i))){
			ans^=d[i];
		}
	}
	printf("%lld\n",ans);
	return 0;
}