QOJ.ac

QOJ

حد الوقت: 1.5 s حد الذاكرة: 512 MB مجموع النقاط: 100

#6635. 奇怪的键盘

الإحصائيات

你有一个奇怪的键盘,上面有 $N$ 个常规按键和一个退格键。你从一个空字符串开始。在任何时刻,你可以按下 $N+1$ 个按键中的任意一个。按下第 $i$ 个常规按键会将字符串 $S_i$ 追加到当前字符串的末尾;按下退格键时,如果当前字符串长度小于 $K$,则什么也不做,否则删除当前字符串的最后 $K$ 个字符。

你想要构造一个字符串 $T$。请问这是否可能?如果可能,构造出字符串 $T$ 所需的最少按键次数是多少?

输入格式

第一行包含一个整数 $Q$,表示测试用例的数量。接下来是各个测试用例。

每个测试用例的第一行包含 $N$ 和 $K$,分别表示常规按键的数量和退格键删除的字符数。

接下来的 $N$ 行中,第 $i$ 行包含字符串 $S_i$,对应第 $i$ 个常规按键。

测试用例的最后一行包含需要构造的字符串 $T$。

数据范围

  • $1 \le Q \le 100$
  • $1 \le N \le 10^6$
  • $1 \le K \le 5000$
  • 所有测试用例中字符串 $S_i$ 的长度之和不超过 $10^6$
  • 所有测试用例中字符串 $T$ 的长度之和不超过 $5000$
  • 字符串 $S_i$ 和 $T$ 仅包含小写英文字母

输出格式

对于每个测试用例:

如果无法构造出字符串 $T$,则输出 $-1$。

否则,输出构造出字符串 $T$ 所需的最少按键次数。

样例

输入 1

2
2 3
defgh
abc
abcde
1 1
a
b

输出 1

3
-1

说明

在第一个测试用例中,我们可以执行以下操作:

  1. 按下第二个常规按键。之后,我们得到 abc
  2. 按下第一个常规按键。现在我们得到 abcdefgh
  3. 按下退格键。现在我们得到所需的 abcde

在第二个测试用例中,无法构造出所需的字符串。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#129EditorialOpen题解jiangly2025-12-12 23:27:47View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.