欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Rinne Loves Xor (异或和&二进制)

程序员文章站 2022-07-01 23:25:15
...

Rinne Loves Xor (异或和&二进制)

题目传送门

思路:
Rinne Loves Xor (异或和&二进制)

AC代码:

#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=1e5+5,mod=1e9+7;
int a[N],b[N];
ll c[N],da[35][2],db[35][2];
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	for(int i=1;i<=n;i++) scanf("%d",&b[i]);
	for(int i=1;i<=n;i++)
		for(int j=0;j<=30;j++)
		{
			da[j][(a[i]>>j)&1]++,db[j][(b[i]>>j)&1]++;
			c[i]=(c[i]+(da[j][0]*db[j][1]+da[j][1]*db[j][0]<<j))%mod; 
		}
	for(int i=1;i<=n;i++)
		printf("%lld ",c[i]);
	return 0;
}