UOJ Logo Universal Online Judge

UOJ

#384. 【HNOI2018】寻宝游戏

附件下载 统计

某大学每年都会有一次Mystery Hunt的活动,玩家需要根据设置的线索解谜,找到宝藏的位置,前一年获胜的队伍可以获得这一年出题的机会。

作为新生的你,对这个活动非常感兴趣。你每天都要从西向东经过教学楼一条很长的走廊,这条走廊是如此的长,以至于它被人戏称为Infinite Corridor。一次,你经过这条走廊的时候,注意到在走廊的墙壁上隐藏着n等长的二进制的数字,长度均为m。你从西向东将这些数字记录了下来,形成一个含有n个数的二进制数组a1,a2,an

很快,在最新的一期Voo Doo杂志上,你发现了q个长度也为m的二进制串r1,r2,,rq

聪明的你很快发现了这些数字的含义。

保持数组a1,a2,an的元素顺序不变,你可以在它们之间插入(按位与运算)或者(按位或运算)两种二进制运算符。例如:1101100111=000111101100111=11111

你需要插入恰好n个运算符,相邻两个数之间恰好一个,在第一个数的左边还有一个。如果我们在第一个运算符的左边补入一个0,这就形成了一个运算式,我们可以计算它的值。与往常一样,运算顺序是从左往右。有趣的是,出题人已经告诉你这个值的可能的集合——Voo Doo杂志里的那一些二进制数r1,r2,,rq,而解谜的方法,就是对r1,r2,,rq中的每一个值ri,分别计算出有多少种方法填入这n个运算符,使得这个运算式的值是ri

然而,Infinite Corridor真的很长,这意味着数据范围可能非常大。因此,答案也可能非常大,但是你发现由于谜题的特殊性,你只需要求答案模1000000007(109+7, 一个质数)的值。

输入格式

第一行三个数n,m,q,含义如题所述。

接下来n行,其中第i行有一个长度为m的二进制串,左边是最高位,表示ai

接下来q行,其中第i行有一个长度为m的二进制串,左边是最高位,表示ri

输出格式

输出q行,每行一个数,其中第i行表示对应于ri的答案。

样例一

input

5 5 1
01110
11011
10000
01010
00100
00100

output

6

explanation

有以下且仅有以下六个运算式的值是001002(下标2表示被标识的数是二进制数)

0 011102 110112 100002 010102 001002

0 011102 110112  100002  010102 001002

0 011102 110112 100002 010102 001002

0 011102 110112 100002 010102 001002

0 011102 110112 100002 010102 001002

0 011102 110112 100002  010102 001002

样例二

input

10 10 3
0100011011
0110100101
1100010100
0111000110
1100011110
0001110100
0001101110
0110100001
1110001010
0010011101
0110011111
1101001010
0010001001

output

69
0
5

限制与约定

对于10%的数据,n20,m30, q=1

对于另外20%的数据,n1000,m16

对于另外40%的数据,n500,m1000

对于100%的数据,1n1000, 1m5000, 1q1000

时间限制1s

空间限制512MB

提示

输入文件可能很大,请注意读入效率。

下载

样例数据下载