4671: 绳袋
内存限制:1024 MB
时间限制:2 S
标准输入输出
题目类型:传统
评测方式:文本比较
上传者:
提交:11
通过:2
题目描述
你一开始有一个空字符串 S。
另外,有 N 个袋子,分别标记为 1,2,…,N,每个袋子里都装有一些字符串。
第 i 个袋子里包含 Ai 个字符串 Si,1,Si,2,…,Si,Ai。
你将重复以下步骤,对于 i=1,2,…,N:
选择并执行以下两种操作中的一种:
1. 支付 1 元,从袋子 i 中精确选择一个字符串,并将其连接到 S 的末尾。
2. 什么都不做。
给定一个字符串 T,找到使最终 S 等于 T 所需的最小金额。
如果没有办法使最终的 S 等于 T,则打印 -1。
输入格式
输入以以下格式从标准输入给出:
T
N
A1 S1,1 S1,2……S1,A1
A2 S2,1 S2,2……S2,A2
⋮
AN SN,1 SN,2……SN,AN
其中:
- T 是目标字符串。
- N 是袋子的数量。
- 对于每个 i,Ai 是袋子 i 中字符串的数量,后跟 Ai 个字符串 Si,1 到 Si,Ai。
输出格式
以整数形式打印答案。
输入样例 复制
abcde
3
3 ab abc abcd
4 f c cd bcde
2 e de
输出样例 复制
2
数据范围与提示
目标字符串 T 由小写英文字母组成,长度在1到100之间(包括1和100)。
N 是介于1到100之间的整数(包括1和100)。
Ai 是介于1到10之间的整数(包括1和10)。
Si,j 是由小写英文字母组成,长度在1到10之间(包括1和10)的字符串。
N 是介于1到100之间的整数(包括1和100)。
Ai 是介于1到10之间的整数(包括1和10)。
Si,j 是由小写英文字母组成,长度在1到10之间(包括1和10)的字符串。