CF2104E.Unpleasant Strings

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

我们称一个字母是允许的,当且仅当它是小写字母且属于拉丁字母表的前 kk 个字母。

给定一个长度为 nn 的字符串 ss,它仅由允许的字母组成。

我们称一个字符串 tt 是愉快的,当且仅当 tt 是 ss 的子序列。

给定 qq 个字符串 t1,t2,…,tqt_1, t_2, \dots, t_q,它们都仅由允许的字母组成。对于每个字符串 tit_i,计算最少需要在它的右侧追加多少个允许的字母,才能使其不再愉快。

序列 tt 是序列 ss 的子序列,当且仅当 tt 可以通过从 ss 中删除若干个(可以是零个或全部)任意位置的元素得到。

输入格式

第一行包含两个整数 nn 和 kk(1≤n≤1061 \le n \le 10^6;1≤k≤261 \le k \le 26)——字符串 ss 的长度和允许的字母数量。

第二行包含字符串 ss,由 nn 个小写拉丁字母组成。字符串的每个字符都是拉丁字母表的前 kk 个字母之一。

第三行包含一个整数 qq(1≤q≤2⋅1051 \le q \le 2 \cdot 10^5)——查询的数量。

接下来的 qq 行包含查询:每行一个查询。第 ii 行包含字符串 tit_i,仅由允许的字母组成。

输入数据的额外约束:所有 tit_i 的总长度不超过 10610^6。

输出格式

对于每个查询,输出一个整数——最少需要在字符串右侧追加的允许字母数量,使其不再愉快。

输入输出样例

  • 输入#1

    7 3
    abacaba
    3
    cc
    bcb
    b

    输出#1

    0
    1
    2
  • 输入#2

    5 1
    aaaaa
    6
    a
    aa
    aaa
    aaaa
    aaaaa
    aaaaaa

    输出#2

    5
    4
    3
    2
    1
    0

说明/提示

在第一个样例中:

  1. 字符串 cc 已经是不愉快的,因此不需要追加任何字母;
  2. bcb 是愉快的,因此至少需要在右侧追加一个字母:bcba 仍然会保持愉快,但 bcbb 和 bcbc 是不愉快的;
  3. 对于 b,至少需要追加两个字母,因为 ba、bb 和 bc 都是愉快的。例如,我们可以得到一个不愉快的字符串 bbb。

翻译由 DeepSeek V3 完成

输入解题思路,AI测评打分。不知道怎么写?

首页