2013南京区域赛 I 题Wall Painting (组合数学+位运算)
题意:给出n个数,求取k个数的异或和是多少,k从1到n,分别输出n个答案;
思路:由于这个是异或和,那么我们可以从这里下手,我们把n个数全都看成二进制的形式,那么当前某一位会被计算进总和,当且仅当在所取的k个数中,这一位为1(二进制形式下)的数量是奇数
那么最后答案就是求一个组合数,乘上当前这一位的权值(即2的幂次),之后相加就行了
#include <bits/stdc++.h>
#...
原创
2018-10-24 19:46:00 ·
261 阅读 ·
0 评论