题解
2025-06-02 22:02:15
发布于:广东
17阅读
0回复
0点赞
# include <bits/stdc++.h>
typedef unsigned long long ull;
#define getchar getchar_unlocked()
#define psbc push_back
#define v vector
#define for1 for(i = 0;i<n;i++)
#define be(x) x.begin(),x.end()
using namespace std ;
const int MX = 1e5;
int i,j,k;
int r(){
int x = 0,f = 1;
char c = getchar;
while(c<'0'||c>'9'){if(c=='-') f = -1;c = getchar;}
while(c>='0'&&c<='9') x = (x<<1)+(x<<3)+(c^(3<<4)),c = getchar;
return x*f;
}
int main ( )
{
int n = r();
v<ull>arr(n);
for(i = 0;i<n;i++){
arr[i] = r();
}
v<ull>bas(60);
for(auto num:arr){
ull cur = num;
for(i = 59;i>=0;i--){
if(cur&(1ULL<<i)){
if(bas[i]==0){
bas[i] = cur;
break;
}
else{
cur ^= bas[i];
}
}
}
}
ull mxr = 0;
for(i = 59;i>=0;i--){
if(bas[i]==0) continue;
if((mxr^bas[i])>mxr){
mxr ^= bas[i];
}
}
cout<<mxr;
return 0;
}
这里空空如也
有帮助,赞一个