6 条题解
-
1
#include<bits/stdc++.h> using namespace std; #define int long long #define N 500010 int n; int a[N]; int num[N]; int fac[35]; int getnum(int x){ int l=1,r=n; int cnt=0; num[0]=0; while(l<=n){ while(l<=r&&num[l]+num[r]>=x)r--; cnt+=min(n-l+1,n-r); l++; } return cnt; } signed main(){ fac[0]=1;for(int i=1;i<=31;i++)fac[i]=fac[i-1]*2; ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; int ans=0; for(int j=0;j<=30;j++){ int cnt=0; for(int i=1;i<=n;i++){ num[i]=a[i]%fac[j+1]; } sort(num+1,num+n+1); cnt+=getnum(fac[j]); cnt-=getnum(fac[j+1]); cnt+=getnum(fac[j]+fac[j+1]); if(cnt&1)ans+=fac[j]; } cout<<ans<<'\n'; return 0; }
信息
- ID
- 12560
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- 递交数
- 155
- 已通过
- 14
- 上传者