A94824.净化传输信号
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
通信卫星接收到了一串长度为 N 的原始信号字符串 source。
经过初步分析,我们识别出了其中包含的一段核心指令字符串 pattern(pattern 保证是 source 的子序列)。
为了优化存储空间,系统标记了一组“冗余下标” targetIndices。
你可以对 source 进行“清理操作”:
- 每次操作可以删除
source中下标位于targetIndices中的任意一个字符。 - 删除操作后,剩余的字符串必须仍然包含
pattern作为其子序列(字符顺序不变)。 - 操作不改变字符在原始字符串中的相对下标判定(即下标是固定的,不会因为前面的字符被删除了而改变后续字符的下标索引)。
请问:在保证 pattern 完整性的前提下,你最多可以执行多少次删除操作?
输入格式
输入共三部分:
- 第一行包含一个字符串
source。 - 第二行包含一个字符串
pattern。 - 第三行包含一个整数 K,表示可删除下标数组的长度。
- 第四行包含 K 个整数,表示
targetIndices的元素,保证按升序排列且互不相同。
输出格式
输出一个整数,表示最多可以删除的字符数量。
输入输出样例
输入#1
abbaa aba 3 0 1 2
输出#1
1
输入#2
bcda d 2 0 3
输出#2
2
说明/提示
样例解释
样例 #1 解释:
source= "abbaa",pattern= "aba", 可删下标 ={0, 1, 2}。- 假如删除下标 0 ('a'),剩余 "bbaa",包含 "aba"(子序列),操作合法。
- 假如删除下标 1 ('b'),剩余 "abaa",包含 "aba",操作合法。
- 假如删除下标 2 ('b'),剩余 "abaa",包含 "aba",操作合法。
- 但如果你试图同时删除下标 0 和 1(变为 "baa"),则不再包含 "aba"。
- 最多只能删 1 个。
样例 #2 解释:
- 删除下标 0 ('b') 和下标 3 ('a')。
- 剩余 "cd",其中 "d" 是
pattern"d" 的子序列。 - 删除了 2 个字符,这是最大值。
数据范围
- 1≤N≤3000 (
source长度) - 1≤M≤N (
pattern长度) targetIndices中的元素在 [0,N−1] 范围内。- 保证
pattern是source的子序列。
数据点分布:
- 测试点 1-5:N≤20
- 测试点 6-15:N≤500
- 测试点 16-25:N≤3000