#ABC268Ex. 禁忌

禁忌

禁忌

题目描述

给定一个字符串 SS。高桥君可以进行以下操作 00 次或多次:

选择一个满足 1≤i≤∣S∣1 \le i \le |S| 的整数 ii,将 SS 的第 ii 个字符改为 *。

高桥君的目标是使 SS 不再包含 NN 个字符串 T1,T2,…,TNT_1, T_2, \ldots, T_N 中的任何一个作为子串。

求达成目标所需的最少操作次数。

输入格式

输入按以下格式从标准输入给出:

SS
NN
T1T_1
T2T_2
⋮\vdots
TNT_N

输出格式

输出答案。

样例

abcdefghijklmn
3
abcd
ijk
ghi
2

选择 i=1i = 1 和 i=9i = 9 各操作一次后,SS 变为 *bcdefgh*jklmn,此时不再包含 abcd、ijk 或 ghi 作为子串。

atcoderbeginnercontest
1
abc
0

无需操作。

aaaaaaaaa
2
aa
xyz
4

数据范围

  • 1≤∣S∣≤5×1051 \le |S| \le 5 \times 10^5
  • 1≤N1 \le N
  • NN 是整数。
  • 1≤∣Ti∣1 \le |T_i|
  • ∑∣Ti∣≤5×105\sum{|T_i|} \le 5 \times 10^5
  • 当 i≠ji \neq j 时,Ti≠TjT_i \neq T_j。
  • SS 和 TiT_i 是由小写英文字母组成的字符串。
难度 NOI/NOI+/CTS
通过率 —
尝试 0
通过 0
ID
2493
类型
传统题
Time Limit
873ms
Memory Limit
1024MiB
上传者
标签