#6001. [USACO08DEC] Secret Message G

0

[USACO08DEC] Secret Message G

[USACO08DEC] Secret Message G

题目描述

贝茜正在领导奶牛们逃跑。为了联络,奶牛们互相发送秘密信息。

信息是二进制的,共有 MM(1≤M≤500001 \le M \le 50000)条,反间谍能力很强的约翰已经部分拦截了这些信息,知道了第 ii 条二进制信息的前 bib_i(1≤bi≤100001 \le b_i \le 10000)位,他同时知道,奶牛使用 NN(1≤N≤500001 \le N \le 50000)条暗号.但是,他仅仅知道第 jj 条暗号的前 cjc_j(1≤cj≤100001 \le c_j \le 10000)位。

对于每条暗号 jj,他想知道有多少截得的信息能够和它匹配。也就是说,有多少信息和这条暗号有着相同的前缀。当然,这个前缀长度必须等于暗号和那条信息长度的较小者。

在输入文件中,位的总数(即 ∑bi+∑ci\sum b_i + \sum c_i)不会超过 5×1055 \times 10^5。

输入格式

第 $1$ 行:两个整数 $M$ 和 $N$。

接下来 MM 行,其中的第 ii 行:一个整数 bib_i,后跟 bib_i 个空格分隔的“0”和“1”,描述截取的消息 ii。

接下来 NN 行,其中的第 jj 行:一个整数 cjc_j,后跟 cjc_j 个空格分隔的“0”和“1”,描述暗号 jj。

输出格式

$N$ 行,第 $i$ 行表示第 $i$ 个暗号可以匹配的消息数。
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 

提示

四条消息;五条暗号。截获的消息以 `010`、`1`、`100` 和 `110` 开头。可能的暗号以 `0`、`1`、`01`、`01001` 和 `11` 开头。

0:匹配 010: 11 个匹配。

1:匹配 1、100 和 110,33 个匹配。

01:匹配 010,11 个匹配。

01001:匹配 010,11 个匹配。

11: 匹配 1 和 110,22 个匹配。 标签: P2922|2008|USACO|进制|字典树 Trie

来源

P2922|[USACO08DEC] Secret Message G