P16865 [GKS 2021 #H] Transform the String

题目描述

给你一个字符串 $S$,表示一个由小写英文字母组成的密码锁。再给你一个字符串 $F$,表示一组喜爱的小写英文字母。你可以对密码锁执行若干次操作。每次操作,你可以将字符串中的一个字母改为字母表中它的前一个或后一个字母。例如,对于字母 $c$,你可以将其改为 $b$ 或 $d$。字母表被视为循环的,即字母 $a$ 的前一个字母是 $z$,字母 $z$ 的后一个字母是 $a$。 你的目标是找到所需的最少操作次数,使得经过操作后,字符串 $S$ 中的每个字母都出现在字符串 $F$ 中。

输入格式

输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。 每个测试用例由两行组成。 每个测试用例的第一行包含字符串 $S$。 每个测试用例的第二行包含字符串 $F$。

输出格式

对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是所需的最少操作次数,使得操作后字符串 $S$ 中的每个字母都是字符串 $F$ 中的字符。

说明/提示

在样例 #1 中,字符串 $S$ 中的所有字母都应转换为字母 $a$。我们可以不断将字母改为其前一个字母,直到变成 $a$。第一个字母已经是 $a$,不需要改变。第二个字母需要 $1$ 次操作改为 $a$。第三个字母需要 $2$ 次操作改为 $a$。第四个字母需要 $3$ 次操作改为 $a$。因此,总共需要 $6$ 次操作将字符串 $S$ 中的所有字母改为 $a$。 在样例 #2 中,字符串 $S$ 已经只包含 $F$ 中的喜爱字母,因此不需要任何操作。 ### 限制条件 $1 \le T \le 100$。 $1 \le |S| \le 10^5$。 $S$ 仅由小写英文字母组成。 $F$ 仅由互不相同的小写英文字母组成。 字符串 $F$ 中的字母按字典序排序。 **测试集 1** $|F| = 1$。 **测试集 2** $1 \le |F| \le 26$。 翻译由 DeepSeek V4 Pro 完成