#P12495. [NAC 2025] Popping Balloons

[NAC 2025] Popping Balloons

题目描述

ICPC 的标志有三种颜色:蓝色、黄色和红色。NAC 志愿者们刚刚充好了大量这三种颜色的气球,并将它们排成一条直线。接下来他们需要按照颜色对气球进行分类,才能分发给参赛者。

不幸的是,由于奥兰多的炎热天气,气球开始随机爆炸:每秒会有一个随机剩余的气球爆炸(志愿者们会从队列中清除爆炸后的残骸)。这也不全是坏事:也许如果 NAC 志愿者们等待足够长的时间,气球就会偶然排好序?请计算在第一次满足以下条件时的期望秒数:所有蓝色气球都位于所有黄色和红色气球之前,且所有黄色气球都位于所有红色气球之前。(即使这些条件是"空洞地"满足的也成立:例如,如果根本没有剩余蓝色气球,那么"所有蓝色气球都在黄色和红色气球之前"这一条件自动成立。)

输入格式

输入包含一行:一个字符串 ss1s21051 \leq |s| \leq 2 \cdot 10^5),其中每个字符是 B\texttt{B}Y\texttt{Y}R\texttt{R},分别代表蓝色、黄色和红色——即初始排列中气球的颜色。

输出格式

输出在第一次满足排序条件时的期望秒数。由于这个数字可能不是整数,请输出其对 998244353998\,244\,353 取模的结果。

形式化地说,设 p=998244353p = 998\,244\,353。可以证明答案可以表示为最简分数 ab\frac{a}{b},其中 aabb 是非负整数且 b≢0(modp)b \not \equiv 0 \pmod{p}。输出满足 0x<p0 \leq x < pxab1modpx \equiv a \cdot b^{-1} \bmod p 的整数 xx

输入输出样例 #1

输入 #1

RYBB

输出 #1

831870297

输入输出样例 #2

输入 #2

YRBBR

输出 #2

598946615

说明/提示

在样例输入 1 中,气球颜色首次正确排序的期望时间是 $\frac{17}{6} = 2 \cdot \frac{1}{6} + 3 \cdot \frac{5}{6}$ 秒: 唯一能在 2 秒后使气球正确排序的情况是前两个爆炸的气球是黄色和红色气球(顺序不限)。这两个气球在蓝色气球之前爆炸的概率是 16\frac{1}{6}。否则(概率为 56\frac{5}{6}),气球将在 3 秒后(只剩一个气球时)自动排序。 由于 61166374059(modp)6^{-1} \equiv 166\,374\,059 \pmod{p},所以答案是 $17 \cdot 166\,374\,059 \equiv 831\,870\,297 \pmod{p}$。