#tRIEybttg020306. 1476:Secret Message 秘密信息

1476:Secret Message 秘密信息

好的,我将题目中的数字和名称用 ...... 标出。


题目描述

贝茜正领导奶牛们逃跑,为了联络,奶牛们互相发送秘密信息。
信息是二进制的,共有 MM 条。约翰拦截了这些信息,知道了第 ii 条二进制信息的前 bib_i 位(即信息前缀)。
同时他知道奶牛使用 NN 条密码,但只了解第 jj 条密码的前 cjc_j 位(即密码前缀)。

对于每条密码 jj,他想知道有多少截得的信息能够和它匹配。
匹配规则:信息的前缀和密码的前缀进行比较,比较的长度等于两者长度的较小者,如果在这一长度范围内两者完全相同,则视为匹配。


输入格式

第一行输入 NNMM
接下来 NN 行,每行描述一条秘密信息:先输入一个整数表示长度 bib_i,然后输入 bib_i 个整数(0011)表示信息前缀。
接下来 MM 行,每行描述一条密码:先输入一个整数表示长度 cjc_j,然后输入 cjc_j 个整数(0011)表示密码前缀。

所有数字之间用空格隔开。

输出格式

MM 行,输出每条密码的匹配信息数。


数据范围

  • 1M500001 \le M \le 50000
  • 1N500001 \le N \le 50000
  • 1bi100001 \le b_i \le 10000
  • 1cj100001 \le c_j \le 10000
  • 所有信息总位数 bi\sum b_i 加上所有密码总位数 cj\sum c_j 不超过 500000500000

输入样例

4 5
3 0 1 0
1 1
3 1 0 0
3 1 1 0
1 0
1 1
2 0 1
5 0 1 0 0 1
2 1 1

输出样例

1
3
1
1
2

样例解释

N=4N=4 条信息前缀:

  1. 010010
  2. 11
  3. 100100
  4. 110110

M=5M=5 条密码前缀:

  1. 00
  2. 11
  3. 0101
  4. 0100101001
  5. 1111

匹配情况:

  • 密码 00:只能与信息 010010 匹配(前 11 位都是 00),计数 11
  • 密码 11:与信息 11, 100100, 110110 匹配(前 11 位都是 11),计数 33
  • 密码 0101:只能与信息 010010 匹配(前 22 位都是 0101),计数 11
  • 密码 0100101001:只能与信息 010010 匹配(前 33 位相同),计数 11
  • 密码 1111:与信息 11(前 22 位是 1?1? 不行,这里信息 11 长度为 11,比较 11 位相同即可,所以匹配)和 110110(前 22 位相同)匹配,计数 22

这样题目就完整了,所有数字和名称都用 ...... 标出。