编程题
### 问题描述 给定长度为 $n$ 的仅由小写英文字母构成的字符串 $S=\{s_1,s_2,\dots,s_n\}$,定义它的子串 $S[l,r]=\{s_l,s_{l+1},\dots,s_r\}$。 有以下两种操作: 1. `1 ad ch`:将字符串中第 $ad$ 个元素 $s_{ad}$ 赋值为字符 $ch$,给定的 $ch$ 仅可能是小写英文字母。 2. `2 l1 r1 l2 r2`:请你判断字符串 $S[l_1,r_1]$ 是否等于 $S[l_2,r_2]$。 共进行 $q$ 次操作,对于每个第二种操作,若两个子串相等则输出 `YES`,否则输出 `NO`。 ### 输入格式 第一行输入一个正整数 $n(1\le n\le 2\times 10^5)$。 第二行输入 $n$ 个小写英文字母,表示字符串 $S$。 第三行输入一个正整数 $q(1\le q\le 2\times 10^5)$,表示操作次数。 以下 $q$ 行,第 $i$ 行首先输入一个正整数 $opt(opt\in\\{1,2\\})$,表示操作种类: - 若 $opt=1$,再输入一个正整数 $ad(1\le ad\le n)$ 和一个小写英文字母 $ch$,描述操作 $1$; - 否则再输入四个正整数 $l_1,r_1,l_2,r_2(1\le l_1\le r_1\le n,1\le l_2\le r_2\le n)$,描述操作 $2$。 ### 输出格式 若干行,对于每个操作 $2$,若两个子串相等则输出 `YES`,否则输出 `NO`。 ### 样例输入 ```text 5 ababa 5 2 1 3 3 5 1 3 c 2 1 3 3 5 1 1 c 2 1 2 3 4 ``` ### 样例输出 ```text YES NO YES ``` ### 评测数据规模 $1\le n,q\le 2\times 10^5$。 $opt\in\\{1,2\\}$。 $1\le ad\le n,1\le l_1\le r_1\le n,1\le l_2\le r_2\le n$。 字符串 $S$ 仅有小写英文字母构成,字符 $ch$ 仅可能是小写英文字母。
查看答案
赣ICP备20007335号-2