luogu#P11089. [ROI 2021 Day 1] 手机游戏
[ROI 2021 Day 1] 手机游戏
题目背景
翻译自 ROI 2021 D1T2。
题目描述
给定一个由 个水晶组成的序列,从左到右排列。每个水晶属于 种类型之一,用前 个英文字母表示。因此,水晶序列可以用一串英文字母表示。
在游戏的一步中,可以从序列中移除一个水晶。玩家的目标是通过用允许的删除方式,得到字典序最小的字符串。
允许的删除方式由大小为 的表 定义,表中的元素只包含 和 。如果 ,则表示当前面紧邻它的水晶是类型 时,允许删除类型 的水晶。这些操作可以按任意顺序执行。
字符串 在字典序上小于字符串 ,需要满足以下条件之一:
- 存在一个位置 ,在两个字符串中都存在,且在该位置之前,两个字符串的字符是相同的,但是 的第 个字符小于 的第 个字符,
- 字符串 是字符串 的严格前缀(即从字符串 末尾删除一个或多个字符得到)。
举个例子,ccf
的字典序小于 cff
,因为 ccf
的第 位(c
)小于 cff
的第 位(f
);而 noi
的字典序小于 noip
,因为 noi
是 noip
的严格前缀。
输入格式
第一行给出两个整数 和 (),分别表示水晶的种类数量和初始水晶序列的长度。
接下来的 行给出表 ,第 行包含 个字符,都是 或 。第 行第 列的字符为 。
最后一行是由 个小写英文字母组成的字符串,表示初始水晶序列。保证字符串中只包含前 个英文字母(如前七个英文字母分别是 a
,b
,c
,d
,e
,f
,g
),第 个字母代表第 种类型的水晶。
输出格式
输出可以通过操作得到的字典顺序最小的字符串。
3 7
010
001
100
abacaba
aac
3 5
010
001
100
bcacb
bacb
提示
样例解释:
这两个样例的 是相同的,它们都只允许这三种类型的删除(下划线的是它的前面一个字符,删除线的是被删除的字符):$\underline\text{a}\xcancel\text{b},\underline\text{b}\xcancel\text{c},\underline\text{c}\xcancel\text{a}$。
样例 中可以这样删除:
样例 中可以这样删除:
- \underline\text{b}\xcancel\text{c}\text{acb}
数据范围:
子任务 | 分值 | ||
---|---|---|---|
对于 的数据,,。