#CF4118. 别怪我
别怪我
题目描述
很遗憾,出题人想不出一个有趣的故事,因此他只是请求你解决以下问题。
给定由 个正整数组成的数组 ,计算按位与后的二进制表示中恰好 位为 1
的非空子序列数量。答案可能很大,因此输出时对 取模。
回顾一下数组 的子序列是从 中去掉一些(可能为零)元素得到的序列。例如,,, 是 的子序列,但 和 不是。
请注意 AND
表示按位与操作。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 。以下是测试用例的描述。
每个测试用例的第一行包含两个整数 和 ——数组的长度和应在其二进制表示中具有的按位 AND
值中的设置位数。
每个测试用例的第二行包含 个整数 ——数组 。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数——在其按位 AND
后的二进制表示中恰好有 位为 1
的子序列数量。答案可能很大,因此输出时对 取模。
测试样例
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
31
10
10
1
4032
15