#P6540. [COCI2013-2014#1] SLASTIČAR
[COCI2013-2014#1] SLASTIČAR
题目背景
你需要比较一些序列号。
题目描述
现有 个由数字 到 组成的短序列号和一个长度为 的长序列号。
检查序列号 是否包含长度为 的序列号 的过程如下:
-
将 从位置 到 逐位与 比较,一找到不同就将搜索段整体向后移,如果确定相等则停止比较。
-
将搜索段后移意为把 到 的搜索区域后移为 和 。
-
若剩下用于比较的位数不够,则在字符串末尾填充
#
。如字符串为563232
,从位置 到 的填充为232####
。 -
若尝试了所有段均不匹配则停止比较。
对于每个短序列号,输出停止比较前比较的次数。
输入格式
输入的第一行是正整数 。
输入的第二行是一个长度为 的长序列号。
输入的第三行包含正整数 。
接下来 行每行包含一个长度不超过 的短序列号。
短序列号总长度不超过 。
输出格式
输出 个整数,即对于第 个短序列号所需的比较次数。
7
1090901
4
87650
0901
109
090
7
10
3
4
10
5821052680
4
210526
2105
582
105268
8
6
3
9
3
001
1
11
4
提示
【数据规模与约定】
- 对于 的数据,,,任意短序列号长度均不超过 。
- 对于 的数据,满足 ,。
- 对于任意序列号中的一位字符 ,满足 。
【样例解释】
样例 1 解释
第一个序列号:
- 机器人为每个段查找不同的第一位数字,总共进行 次比较。
第二个序列号:
- 尝试第一个位置,立即发现差异, 次比较。
- 尝试第二个位置,找到第四个数字的差异, 次比较。
- 尝试第三个位置,立即找到差异, 次比较。
- 尝试第四个位置,找到匹配,个比较。
- 总计 次比较。
第三序列号:
- 立即找到匹配项,总计 个比较。
第四个序列号:
- 在第二个位置找到匹配项,总计 个比较。
样例 3 解释
按顺序将序列号 11
与段 00
, 次比较,01
, 次比较,和1#
, 次比较,总计 次比较。
【说明】
题目译自 COCI2013-2014 CONTEST #1 T6 SLASTIČAR。