1 条题解
-
0
C++ :
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long ll; int n; ll s,a[100010],p[60]; inline void insert(ll x) { for(int i=59;~i;i--) if((x>>i)&1 && (~s>>i)&1) { if(!p[i]) {p[i]=x;return;} x^=p[i]; } for(int i=59;~i;i--) if((x>>i)&1 && (s>>i)&1) { if(!p[i]) {p[i]=x;return;} x^=p[i]; } } inline ll query() { ll ret=0; for(int i=59;~i;i--) if((~ret>>i)&1 && (~s>>i)&1) ret^=p[i]; for(int i=59;~i;i--) if((~ret>>i)&1 && (s>>i)&1) ret^=p[i]; return ret; } int main() { cin>>n; for(int i=1;i<=n;i++) scanf("%lld",&a[i]),s^=a[i]; for(int i=1;i<=n;i++) insert(a[i]); cout<<(query()^s); return 0; }
- 1
信息
- ID
- 1025
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者