#P11546. [2025年Noi模拟]最大异或和

[2025年Noi模拟]最大异或和

题目描述

给定整数 N,M,XN,M,X,以及 KK 个正整数 b1,b2,,bKb_1,b_2,\cdots,b_K,求有多少长为 MM 的整数序列 a1,a2,,aMa_1,a_2,\cdots,a_M,满足:

  • 0ai<2N0\le a_i<2^N
  • 存在一个子序列 ai1,ai2,,aika_{i_1},a_{i_2},\cdots,a_{i_k}1i1<i2<<ikM1\le i_1<i_2<\cdots<i_k\le M),使得 $a_{i_1}\oplus a_{i_2}\oplus\cdots\oplus a_{i_k}\ge X$。
  • 对于每个 j=1,,Kj=1,\cdots,K,存在一个子序列 ai1,ai2,,aika_{i_1},a_{i_2},\cdots,a_{i_k}1i1<i2<<ikM1\le i_1<i_2<\cdots<i_k\le M),使得 $a_{i_1}\oplus a_{i_2}\oplus\cdots\oplus a_{i_k}=b_j$。

其中 \oplus 表示异或。答案对 109+710^9+7 取模。

输入格式

第一行:三个整数 N,M,KN,M,K

第二行:一个长为 NN 的 01 串,为 XX 从高位到低位的二进制表示。

接下来 KK 行:第 ii 行一个长为 NN 的 01 串,为 bib_i 从高位到低位的二进制表示。

输出格式

一个整数,表示答案。

样例输入1

4 4 1
0101
0010

样例输出1

39060

样例输入2

8 10 3
00000000
01101101
11001001
11101111

样例输出2

3836934

样例输入 3

8 10 0
10010110

样例输出 3

808800473

样例输入4

8 20 8
11101010
01010100
00110110
11100011
11100100
11100011
01010101
10110000
00000111

样例输出4

443121994

数据范围

对于所有数据,满足 1N50001\le N\le 50001M1091\le M\le 10^90K10000\le K\le 10000X<2N0\le X<2^N1bi<2N1\le b_i<2^N

子任务编号 分值 NN\le MM\le KK\le XX
1 10 44 1010
2 88 50005000 10001000
3 15 300300 00
4 500500 =0=0
5 10
6 15 50005000 10910^9 00
7 10001000 =0=0
8 10