P3812 【模板】线性基
题意:给你一些数,问他们的最大异或值是多少。
思路:线性基模板题,只要一个插入,一个查询最大值即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll b[51];
void ins(ll x){
for(int i=51;i>=0;i--){
if(x&(1ll<<i)){
if(!b[i]){
b[i]=x;
return;
}
x^=b[i];
}
}
}
int main(){
memset(b,0,sizeof(b));
int n;
ll x;
cin>>n;
for(int i=0;i<n;i++){
scanf("%lld",&x);
ins(x);
}
ll ans=0;
for(int i=51;i>=0;i--){
if((ans^b[i])>ans)
ans=ans^b[i];
}
printf("%lld\n",ans);
return 0;
}