我的 code
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[1001],sum=0,n;
void xy()
{
int r=0;
for(int i=50;i>=0;i--)
{
for(int j=r;j<=n;j++)
{
if(a[j]&(1LL<<i))
{
swap(a[j],a[r]);
break;
}
}
if(!a[r]&(1LL<<i))
{
continue;
}
for(int k=1;k<=n;k++)
{
if(k==r) continue;
if(a[k]&(1LL<<i)) a[k]^=a[r];
}
r++;
}
return;
}
main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
xy();
for(int i=1;i<=n;i++) sum^=a[i];
cout<<sum;
}
第二个样例
4
1 5 9 4
我的输出
9
正确输出
13
这份代码竟然过了!