Processing math: 100%
编程题
                ### 问题描述

给定长度为 n 的仅由小写英文字母构成的字符串 S={s1,s2,,sn},定义它的子串 S[l,r]={sl,sl+1,,sr}

有以下两种操作:

  1. 1 ad ch:将字符串中第 ad 个元素 sad 赋值为字符 ch,给定的 ch 仅可能是小写英文字母。
  2. 2 l1 r1 l2 r2:请你判断字符串 S[l1,r1] 是否等于 S[l2,r2]

共进行 q 次操作,对于每个第二种操作,若两个子串相等则输出 YES,否则输出 NO

输入格式

第一行输入一个正整数 n(1n2×105)

第二行输入 n 个小写英文字母,表示字符串 S

第三行输入一个正整数 q(1q2×105),表示操作次数。

以下 q 行,第 i 行首先输入一个正整数 opt(opt1,2),表示操作种类:

  • opt=1,再输入一个正整数 ad(1adn) 和一个小写英文字母 ch,描述操作 1
  • 否则再输入四个正整数 l1,r1,l2,r2(1l1r1n,1l2r2n),描述操作 2

输出格式

若干行,对于每个操作 2,若两个子串相等则输出 YES,否则输出 NO

样例输入

5
ababa
5
2 1 3 3 5
1 3 c
2 1 3 3 5
1 1 c
2 1 2 3 4

样例输出

YES
NO
YES

评测数据规模

1n,q2×105

opt1,2

1adn,1l1r1n,1l2r2n

字符串 S 仅有小写英文字母构成,字符 ch 仅可能是小写英文字母。

查看答案
赣ICP备20007335号-2