1 条题解

  • 0
    @ 2026-6-24 13:12:48
    #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
    上传者