#P7803. [JOI Open 2021] Crossing
[JOI Open 2021] Crossing
题目背景
警告:滥用本题评测将被封号!
题目描述
你的资源库里有 个长度为 的只由 J
,O
,I
组成的序列 ,你可以进行 C 操作(全名为 Croos 操作,简写为 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
。