P3917. 异或序列

#include<cstdio>
#define LL long long
using namespace std;
int n,a[100005];
LL ans = 0;

int main()
{
	scanf("%d",&n);
	for (int i = 1; i <= n; i++) scanf("%d",&a[i]),a[i] ^= a[i - 1];
	for (int i = 0; i <= 30; i++)
	{
		LL c1 = 0,c2 = 0;
		for (int j = 0; j <= n; j++)
			if (a[j] & (1 << i)) c1++;
			else c2++;
		ans += (LL)c1 * c2 * (1LL << i);
	}
	printf("%lld\n",ans);
}
posted @ 2022-01-24 16:05  RiverSheep  阅读(39)  评论(0编辑  收藏  举报