传送门

题目大意:输入一个数组,求出数组内元素的两两异或和


首先题目要求求出数组内两两异或和

考虑到异或的性质,我们可以枚举二进制里面的每一位里面出现0和1的次数

例如样例1中

第一个二进制位出现了1次0和2次1

第二个二进制位出现了1次0和2次1

那么结果就是(1<<0)*1*2+(1<<1)*1*2

类似于这样的做法

从而判断这一位所在的数字被加了多少次

加的次数就相当于0出现的次数与1出现的次数的乘积

最后结果取模输出即可


2019-12-26 13:35 Author: WindCry1

分类: 二进制

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注