CF2048I2.Kevin and Puzzle (Hard Version)

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是此题目的困难版本,两个版本的区别在于在这个版本中,你需要计算出所有“好数组”的数量。只有在解决了所有版本的问题后,才可以进行 hack。

Kevin 在参观红教堂时发现了一道墙上的谜题。

对于一个数组 aa,令 c(l,r)c(l, r) 表示数组 aa 从位置 ll 到 rr 的所有元素中,不同数字的个数。特别地,当 l>rl > r 时,定义 c(l,r)=0c(l, r) = 0。

现给定一个长度为 nn 的字符串 ss,该字符串仅由字母 L\texttt{L} 和 R\texttt{R} 组成。将一个非负整数数组 aa 称为“好数组”,如果对于每个 1≤i≤n1 \leq i \leq n 满足以下条件:

  • 若 si=Ls_i = \verb!L!,则 c(1,i−1)=aic(1, i-1) = a_i;
  • 若 si=Rs_i = \verb!R!,则 c(i+1,n)=aic(i+1, n) = a_i。

你的任务是计算这样的“好数组” aa 的数量。由于结果可能会非常大,输出结果时只需对 998 244 353998\,244\,353 取模。

输入格式

输入包含多组测试用例。

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例中:

  • 第一行包含一个整数 nn(2≤n≤2⋅1052 \leq n \leq 2 \cdot 10^5),表示字符串 ss 的长度。
  • 第二行是一个长度为 nn 的字符串 ss,由字母 L\verb!L! 和 R\verb!R! 组成。

并且,所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出“好数组”的数量,并对 998 244 353998\,244\,353 取模。

本翻译由 AI 自动生成

输入输出样例

  • 输入#1

    4
    3
    LLR
    3
    RRL
    4
    RRLR
    5
    LLRLR

    输出#1

    1
    2
    0
    1

输入解题思路,AI测评打分。不知道怎么写?

首页