题目背景
yummy 为什么是云斗滴神?That's a good question!
题目描述
某天,yummy 给了你 n 个正整数 x1,x2,…,xn,第 i 个正整数满足约束 0≤xi≤ri。现在, 祂希望你能解决如下问题:
求有多少组本质不同的 {xn} 满足 x1⊕x2⊕…⊕xn 是 m 的倍数,其中 ⊕ 表示按位异或。
对于两组 {xn},{xn′},两者本质不同当且仅当 ∃k∈[1,n] 满足 xk=xk′。
输入格式
输入的第一行有两个正整数 n,m,表示正整数个数和异或值的要求。
第二行有 n 个正整数 r1,r2,…,rn,表示每个正整数的上限。
输出格式
输出一行一个自然数,表示符合题意的方案数。由于方案数可能过大,你需要将答案对 109+7 求余。
样例 #1
样例输入 #1
2 3
2 4
样例输出 #1
7
样例 #2,3,4,5
点我下载大样例
提示
【样例解释】
下列表格中 T 表示 x1⊕x2 是 3 的倍数,F 表示不是。
x1\x2 |
0 |
1 |
2 |
3 |
4 |
0 |
T |
F |
T |
F |
1 |
F |
T |
F |
2 |
T |
【数据范围】
测试点编号T |
n≤ |
ri≤ |
特殊性质 |
1 |
109 |
|
2 |
2 |
104 |
3∼5 |
109 |
6∼14 |
T |
15∼16 |
15 |
m=16 |
17 |
=229−1 |
|
18∼20 |
109 |
对于全体数据,保证 1≤n≤15,1≤ri≤109,1≤m≤20。