问题 6023 --1的个数

6023: 1的个数★★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 3  解决: 1
[提交][状态][命题人:]

题目描述

给定一个由n个正整数组成的数组a,计算非空子序列的数量,使得子序列中所有元素的按位与运算的结果在其二进制表示中正好有k1。答案可能很大,所以以109+7为模输出。

注意,数组a的子序列是可以通过移除一些(可能为零个)元素从a获得的序列。例如,[1,2,3],[3],[1,3]是[1,2,3]的子序列,但[3,2]和[4,5,6]不是。

输入

每个测试包含多个测试用例。第一行包含测试用例的数量t1t10^4)。测试用例的描述如下。

每个测试用例的第一行由两个整数nk1n210^50k6)组成——数组的大小和对计数的子序列进行逐位与运算的二进制表示中应包含的1的个数。

每个测试用例的第二行由n个整数ai0ai63)组成——数组a

对于50%的数据,t6n20

对于100%的数据,1n210^5t*n10^6

输出

对于每个测试用例,输出一个整数——在按位AND值的二进制表示中正好有k1的子序列的数量。答案可能很大,所以以10^9+7为模输出。

样例输入
Copy
6
5 1
1 1 1 1 1
4 0
0 1 2 3
5 1
5 5 7 4 2
1 2
3
12 0
0 2 0 2 0 2 0 2 0 2 0 2
10 6
63 0 63 5 5 63 63 4 12 13
样例输出
Copy
31
10
10
1
4032
15

提示

来源

[提交][状态]