CF2048I2.Kevin and Puzzle (Hard Version)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是此题目的困难版本,两个版本的区别在于在这个版本中,你需要计算出所有“好数组”的数量。只有在解决了所有版本的问题后,才可以进行 hack。
Kevin 在参观红教堂时发现了一道墙上的谜题。
对于一个数组 a,令 c(l,r) 表示数组 a 从位置 l 到 r 的所有元素中,不同数字的个数。特别地,当 l>r 时,定义 c(l,r)=0。
现给定一个长度为 n 的字符串 s,该字符串仅由字母 L 和 R 组成。将一个非负整数数组 a 称为“好数组”,如果对于每个 1≤i≤n 满足以下条件:
- 若 si=L,则 c(1,i−1)=ai;
- 若 si=R,则 c(i+1,n)=ai。
你的任务是计算这样的“好数组” a 的数量。由于结果可能会非常大,输出结果时只需对 998244353 取模。
输入格式
输入包含多组测试用例。
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例中:
- 第一行包含一个整数 n(2≤n≤2⋅105),表示字符串 s 的长度。
- 第二行是一个长度为 n 的字符串 s,由字母 L 和 R 组成。
并且,所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出“好数组”的数量,并对 998244353 取模。
本翻译由 AI 自动生成
输入输出样例
输入#1
4 3 LLR 3 RRL 4 RRLR 5 LLRLR
输出#1
1 2 0 1
输入解题思路,AI测评打分。不知道怎么写?