#P15916. [Roi2021]家乡原野
[Roi2021]家乡原野
题目描述
你正在手机上玩一款名为《家乡原野》的游戏。游戏中有一排从左到右排列的 个水晶,每个水晶属于 种类型之一,用前 个小写英文字母表示。因此,这排水晶可以写成一个字符串。
一次操作可以从序列中删除一个水晶。你的目标是通过若干次允许的删除操作,得到字典序最小的字符串。
允许删除的类型由一个 的 01 矩阵 给出。如果 ,则当类型为 的水晶左边紧挨着一个类型为 的水晶时,可以删除这个类型为 的水晶。操作可以按任意顺序进行。
字典序定义如下:字符串 小于字符串 ,当且仅当满足以下之一:
- 存在某个二者都包含的位置 ,在 之前两个字符串完全相同,且 ;
- 是 的严格前缀。
输入格式
第一行包含两个整数 ,表示水晶类型数和初始序列长度。
接下来 行给出矩阵 ,第 行包含恰好 个字符 0 或 1,第 个字符表示 。
最后一行包含一个长度为 的小写英文字母串,表示初始水晶序列。保证只出现前 个小写英文字母。
输出格式
输出通过允许操作可以得到的字典序最小字符串。
数据范围
- ;
- 。
样例
样例 1 输入
3 7
010
001
100
abacaba
样例 1 输出
aac
样例 2 输入
3 5
010
001
100
bcacb
样例 2 输出
bacb
样例说明
两个样例中允许的删除关系为:在 a 后可删 b,在 b 后可删 c,在 c 后可删 a。
第一个样例的一种删除过程为:
abacaba
abacaa
abaca
abac
aac
第二个样例的一种删除过程为:
bcacb
bacb
子任务
| 子任务 | 分值 | 限制 | 限制 | 必要子任务 | 检查信息 |
|---|---|---|---|---|---|
| 1 | 10 | 样例 | 第一处错误 | ||
| 2 | 12 | ||||
| 3 | 16 | 样例,2 | |||
| 4 | 17 | 样例,1-3 | |||
| 5 | 10 | 样例,1-4 | |||
| 6 | 9 | 样例,1-5 | |||
| 7 | 8 | 样例,1-6 | |||
| 8 | 11 | - | |||
| 9 | 7 | 样例,1-8 |