AT_abc344_d [ABC344D] String Bags

题目描述

你一开始拥有一个空字符串 $S$。 此外,你还有编号为 $1,2,\dots,N$ 的若干个袋子,每个袋子中装有若干字符串。 袋子 $i$ 中有 $A_i$ 个字符串,分别为 $S_{i,1},S_{i,2},\dots,S_{i,A_i}$。 接下来,你需要对 $i=1,2,\dots,N$ 依次进行如下操作: - 从以下两种行为中任选其一: - 支付 $1$ 元,从袋子 $i$ 中恰好选择一个字符串,将其连接到 $S$ 的末尾。 - 什么都不做。 给定字符串 $T$,请你求出最终使 $S$ 与 $T$ 完全相同所需的最小金额。 如果无论如何都无法使最终的 $S$ 与 $T$ 相同,请输出 $-1$。

输入格式

输入按以下格式从标准输入给出。 > $T$ $N$ $A_1$ $S_{1,1}$ $S_{1,2}$ $\dots$ $S_{1,A_1}$ $A_2$ $S_{2,1}$ $S_{2,2}$ $\dots$ $S_{2,A_2}$ $\vdots$ $A_N$ $S_{N,1}$ $S_{N,2}$ $\dots$ $S_{N,A_N}$

输出格式

请输出一个整数,表示所需的最小金额。

说明/提示

## 限制条件 - $T$ 是一个长度在 $1$ 到 $100$ 之间的仅包含小写英文字母的字符串。 - $N$ 是 $1$ 到 $100$ 之间的整数。 - $A_i$ 是 $1$ 到 $10$ 之间的整数。 - $S_{i,j}$ 是长度在 $1$ 到 $10$ 之间的仅包含小写英文字母的字符串。 ## 样例解释 1 例如,可以按如下方式用 $2$ 元使最终的 $S$ 与 $T$ 相同,并且这就是所需金额的最小值。 - 对于 $i=1$,从袋子 $1$ 中选择 `abc`,连接到 $S$ 的末尾。此时 $S=$ `abc`。 - 对于 $i=2$,什么都不做。 - 对于 $i=3$,从袋子 $3$ 中选择 `de`,连接到 $S$ 的末尾。此时 $S=$ `abcde`。 ## 样例解释 2 无论如何都无法使最终的 $S$ 与 $T$ 相同,因此请输出 $-1$。 由 ChatGPT 4.1 翻译