题目名称 281. [USACO Dec08] 密信
输入输出 sec.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 13
题目来源 Gravatarzqzas 于2009-02-22加入
开放分组 全部用户
提交状态
分类标签
USACO 字符串 字典树/Trie
分享题解
通过:33, 提交:76, 通过率:43.42%
Gravatar_Itachi 100 0.176 s 8.40 MiB C++
GravatarZXCVBNM_1 100 0.191 s 7.98 MiB C++
Gravatar可以的. 100 0.203 s 15.61 MiB C++
GravatarSky_miner 100 0.210 s 0.32 MiB C++
GravatarMiracleEEEE 100 0.214 s 7.92 MiB C++
Gravatar‎MistyEye 100 0.237 s 0.35 MiB C++
Gravatar┭┮﹏┭┮ 100 0.332 s 8.11 MiB C++
Gravatarthomount 100 0.389 s 8.31 MiB C++
Gravatarsywgz 100 0.412 s 19.38 MiB C++
GravatarGo灬Fire 100 0.569 s 70.71 MiB C++
关于 密信 的近10条评论(全部评论)
好~
Gravatar┭┮﹏┭┮
2023-10-03 17:36 4楼
真是智障了,查询过程中边输入边查找,遇到不符的条件的就reutrn,然后都没读完。。
GravatarGo灬Fire
2017-02-22 08:33 3楼
GravatarSky_miner
2016-07-16 08:07 2楼
Gravatar‎MistyEye
2016-07-15 11:57 1楼

281. [USACO Dec08] 密信

★★   输入文件:sec.in   输出文件:sec.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

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

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

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

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

【输入格式】

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

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

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

【输出格式】

$N$ 行,第 $i$ 行表示第 $i$ 个暗号可以匹配的消息数。

【样例 1 输入】

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 输出】

1 
3 
1 
1 
2

【样例 1 解释】

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

0:匹配 010: $1$ 个匹配。

1:匹配 1、100 和 110,$3$ 个匹配。

01:匹配 010,$1$ 个匹配。

01001:匹配 010,$1$ 个匹配。

11: 匹配 1 和 110,$2$ 个匹配。