1 条题解
-
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10; int a[N],d[N],f[N],s[N],n; signed main() { cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; int ans=0; for(int i=30;i>=0;i--) { for(int j=1;j<=n;j++)d[j]=bool(a[j]&(1<<i)); for(int j=1;j<=n;j++)f[j]=f[j-1]^d[j]; for(int j=1;j<=n;j++)s[j]=s[j-1]+f[j]; int res=0; for(int j=2;j<=n;j++) if(f[j])res+=j-1-s[j-2]; else res+=s[j-2]; ans+=res<<i; } cout<<ans; return 0; }
- 1
信息
- ID
- 1656
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 8
- 标签
- 递交数
- 19
- 已通过
- 6
- 上传者