luogu#P7803. [JOI Open 2021] Crossing

[JOI Open 2021] Crossing

题目背景

警告:滥用本题评测将被封号!

题目描述

你的资源库里有 33 个长度为 NN 的只由 JOI 组成的序列 SA,SB,SCS_A,S_B,S_C,你可以进行 C 操作(全名为 Croos 操作,简写为 C 操作),每一次 C 操作你可以在资源库里选择两个字符串 C1,C2C_1,C_2,C 操作后产生的字符串为 C3C_3,则对于任意 i[1,N]i \in [1,N],设这三个字符串第 ii 个位置上的字符分别为 c1,c2,c3c_1,c_2,c_3,有:

c1c_1 c2c_2 c3c_3
J J
O I
I O
O J I
O
I J
I J O
O J
I

上面这个表格的意思是 c1,c2c_1,c_2 为对应字符时,c3c_3 也应该是对应的字符。

进行 C 操作后将会把产生的字符串放入资源库。

你被给定了一个长度为 NN 的只由 JOI 组成的字符串 T0T_0,和 QQ 个整数 Lj,RjL_j,R_jQQ 个字符 CjC_j,由这些形成 QQ 个长度为 NN 的字符串 TjT_j,规则为:

TjT_j 是由 Tj1T_{j-1} 的第 LjL_j 个字符到第 RjR_j 个字符都替换成 CjC_j 得到的。

求对于每一个字符串(包括 T0T_0),是否能由给定的资源库进行一次或多次 C 操作得来。如果该字符串与资源库的其中一个字符串一模一样,也可以称“进行 C 操作得来”,详细内容请看样例 1 的 T2T_2

jj 个字符串进行 C 操作时放入资源库的字符串将会在对第 j+1j+1 个字符串判断时清空。

输入格式

第一行一个整数 NN 代表字符串的长度。

接下来 33SA,SB,SCS_A,S_B,S_C 代表给定的资源库里的字符串。

第五行一个整数 QQ 代表给定的字符串个数。

第六行一个字符串 T0T_0,意义如题面所述。

接下来 QQ 行每行两个整数和一个字符 Lj,Rj,CjL_j,R_j,C_j,意义如题面所述。

输出格式

Q+1Q+1 行每行一个字符串 YesNo,第 jj 行代表第 Tj1T_{j-1} 个字符串是否可以由初始资源库得来。

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 解释

  • T0T_0 可以由 JJOIOJOO 经过 C 操作而来;
  • T1T_1OOOO,无法从资源库经过 C 操作而来;
  • T2T_2OJOO,资源库中有 OJOO,故可以;
  • T3T_3OIII
    1. JJOIOJOO 经过 C 操作产生 IJOJ
    2. JOJOIJOJ 经过 C 操作产生 OIII

样例 2 解释

  • T0T_0 无法从资源库经过 C 操作而来;
  • T1T_1OOI,无法从资源库经过 C 操作而来;
  • T2T_2JOI,资源库中有 JOI,故可以。

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(3 pts):SA=SB=SCS_A=S_B=S_CN100N \le 100
  • Subtask 2(23 pts):SA=SB=SCS_A=S_B=S_C
  • Subtask 3(23 pts):N100N \le 100
  • Subtask 4(51 pts):无特殊限制。

对于 100%100\% 的数据:

  • 1N2×1051 \le N \le 2 \times 10^5
  • SA,SB,SCS_A,S_B,S_C 是只包含 JOI 的长度为 NN 的字符串;
  • 1Q2×1051 \le Q \le 2 \times 10^5
  • T0T_0 是只包含 JOI 的长度为 NN 的字符串;
  • 1LjRjN1 \le L_j \le R_j \le N
  • Cj{C_j \in \{JOI}\}

说明

翻译自 JOI 2020 / 2021 Open Contest A Crossing