洛谷题解这么好
就不重新写了
板子如下
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[100],p[100];
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(){
int n;
ll ans=0;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lld",&a[i]);
get(a[i]);
}
for(int i=62;i>=0;i--){
if((ans^p[i])>ans){
ans^=p[i];
}
}
printf("%lld",ans);
return 0;
}