#P7803. [JOI Open 2021] 杂交 / Crossing
[JOI Open 2021] 杂交 / Crossing
题目背景
警告:滥用本题评测将被封号。
题目描述
你的资源库里有 个长度为 的只由 J,O,I 组成的序列 ,你可以进行 C 操作(全名为 Cross 操作,简写为 C 操作),每一次 C 操作你可以在资源库里选择两个字符串 ,C 操作后产生的字符串为 ,则对于任意 ,设这三个字符串第 个位置上的字符分别为 ,有:
| J | J | |
| O | I | |
| I | O | |
| O | J | I |
| O | ||
| I | J | |
| I | J | O |
| O | J | |
| I | ||
上面这个表格的意思是 为对应字符时, 也应该是对应的字符。
进行 C 操作后将会把产生的字符串放入资源库。
你被给定了一个长度为 的只由 J,O,I 组成的字符串 ,和 个整数 和 个字符 ,由这些形成 个长度为 的字符串 ,规则为:
是由 的第 个字符到第 个字符都替换成 得到的。
求对于每一个字符串(包括 ),是否能由给定的资源库进行一次或多次 C 操作得来。如果该字符串与资源库的其中一个字符串一模一样,也可以称“进行 C 操作得来”,详细内容请看样例 1 的 。
第 个字符串进行 C 操作时放入资源库的字符串将会在对第 个字符串判断时清空。
输入格式
第一行一个整数 代表字符串的长度。
接下来 行 代表给定的资源库里的字符串。
第五行一个整数 代表给定的字符串个数。
第六行一个字符串 ,意义如题面所述。
接下来 行每行两个整数和一个字符 ,意义如题面所述。
输出格式
行每行一个字符串 Yes 或 No,第 行代表第 个字符串是否可以由初始资源库得来。
4
JOJO
JJOI
OJOO
3
IJOJ
1 4 O
2 2 J
2 4 I
Yes
No
Yes
Yes
3
JOI
JOI
JOI
2
OJI
1 2 O
1 1 J
No
No
Yes
提示
样例 1 解释
- 可以由
JJOI和OJOO经过 C 操作而来; - 为
OOOO,无法从资源库经过 C 操作而来; - 为
OJOO,资源库中有OJOO,故可以; - 为
OIII:- 由
JJOI和OJOO经过 C 操作产生IJOJ; - 由
JOJO和IJOJ经过 C 操作产生OIII。
- 由
样例 2 解释
- 无法从资源库经过 C 操作而来;
- 为
OOI,无法从资源库经过 C 操作而来; - 为
JOI,资源库中有JOI,故可以。
数据规模与约定
本题采用捆绑测试。
- Subtask 1(3 pts):,;
- Subtask 2(23 pts):;
- Subtask 3(23 pts):;
- Subtask 4(51 pts):无特殊限制。
对于 的数据:
- ;
- 是只包含
J,O,I的长度为 的字符串; - ;
- 是只包含
J,O,I的长度为 的字符串; - ;
J,O,I。