Responsive image

问题 2616 --Serval的试卷答案

2616: Serval的试卷答案

时间限制: 1 Sec  内存限制: 512 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

Serval 是加帕里幼儿园的新生。
期中考试前一天晚上,Serval 在梦中见到了考试试卷和试卷答案。
Serval 梦中的考试试卷只有不定项选择题,题号从 1 开始标号,但是题目数量并不确定。一道不定项选择题只有 ABCD 四个选项,其答案是正确选项按字典序排列得到的字符串,这意味着一道不定项选择题至少有一个正确选项。例如 ABD 或者 C 可以是一道不定项选择题的答案,而 DA 以及 BB 不是。一张试卷的答案是不定项选择题答案连接而成的字符串。
梦醒之后,Serval 连忙写下了记忆中残留的答案片段。Serval 可能会修改写下的答案字符串,但他最好奇的是,对于某一段答案字符串,有多少份恰好包含 k 道不定项选择题的不同试卷,其答案恰为这个字符串。两份试卷不同当且仅当某道题号相同的不定项选择题的答案不同。
具体来说,Serval 写下了长度为 n 的仅包含 ABCD 的字符串 S。Serval 给出了 q 次操作,操作分为
以下两种:
1. 给出 l, r,对于 l ≤ x ≤ r,将 Sx 变为下一个选项,即 A 变为 B,B 变为 C,C 变为 D,D 变为 A。
2. 给出 l, r, k,对于 Sl , Sl+1, . . . , Sr 依次连接得到的答案字符串,求出有多少份恰好包含 k 道不定项
选择题的不同试卷,其答案恰为这个字符串。
对于第二个操作,由于答案可能很大,你只需要求出答案对 998 244 353 取模的结果。
Serval 还是幼儿园的小朋友,并不能解决这个问题。你能帮他解决他的小问题,满足他的好奇心吗?

输入描述

第一行,两个整数 n, q(1 ≤ n ≤ 105, 1 ≤ q ≤ 105),表示 Serval 写下的答案字符串的长度,以及Serval 给出的操作次数。
第二行,长度为 n 的字符串 S,表示 Serval 写下的答案字符串。
接下来 q 行,每行第一个整数 op(1 ≤ op ≤ 2),表示 Serval 给出第 op 种操作。当 op = 1 时,之后包含两个整数 l, r(1 ≤ l ≤ r ≤ n),表示操作参数。当 op = 2 时,之后包含三个整数 l, r, k(1 ≤ l ≤ r ≤ n, 1 ≤ k ≤ n),表示操作参数。

输出描述

对于第二个操作,输出一行一个整数,表示所求的答案对 998 244 353 取模的结果。

样例输入

5 6
BACDA
2 1 4 2
1 2 3
2 1 5 4
1 2 3
2 1 5 4
2 1 5 5

样例输出

1
1
2
1

提示


对于样例,我们给出如下说明:


1. 仅有以下一种恰好包含 2 道不定项选择题的试卷的答案为 BACD:




B ACD


2. 答案字符串变为 BBDDA。




3. 仅有以下一种恰好包含 4 道不定项选择题的试卷的答案为 BBDDA:


B BD D A


4. 答案字符串变为 BCADA。


5. 有以下两种恰好包含 4 道不定项选择题的试卷的答案为 BCADA:


B C AD A


BC A D A


6. 仅有以下一种恰好包含 5 道不定项选择题的试卷的答案为 BCADA:


B C A D A




来源

[提交][状态]
ACM算法攻关部
  • Anything about this OnlineJudge, Please Contact Administrator. Click add QQ

    OJ system based on HUSTOJ Project , UI based on Twitter Bootstrap

    Copyright 2016 ACM算法攻关部
    关于网站改版