AT_agc050_c [AGC050C] Block Game

题目描述

有一排无限延伸的格子。你和すぬけ君将用这些格子进行如下游戏。 - 裁判会制作一个只包含 `B` 和 `S` 的“回合字符串” $t$,并展示给两人。 - 首先,すぬけ君会站在某一个格子上。 - 然后,对于每个 $i=1,\ldots,|t|$,依次进行以下操作: - 如果 $t$ 的第 $i$ 个字符是 `B`,则轮到你操作。你可以选择一个没有其他方块或すぬけ君的格子,放置一个方块。放置后,如果すぬけ君的左右两侧格子都被方块占据,则你获胜,游戏结束。 - 如果 $t$ 的第 $i$ 个字符是 `S`,则轮到すぬけ君操作。すぬけ君可以移动到相邻的空格子,或者选择不动。 - 如果所有回合结束后游戏仍未结束,则すぬけ君获胜,游戏结束。 给定一个只包含 `B`、`S`、`?` 的字符串 $s$。其中 `?` 的数量为 $Q$。每个 `?` 可以独立替换为 `B` 或 `S`,因此一共有 $2^Q$ 种可能的“回合字符串”。在这 $2^Q$ 种情况下,若双方都采取最优策略,你能获胜的方案数是多少?请输出答案对 $998244353$ 取模的结果。

输入格式

输入由标准输入给出,格式如下: > $s$

输出格式

输出答案。

说明/提示

### 数据范围 - $1 \leq |s| \leq 10^6$ - $s$ 只包含 `B`、`S`、`?`。 ### 样例解释 1 第 $1$、$4$ 回合是你的回合,第 $2$、$3$、$5$ 回合是すぬけ君的回合。在这种情况下,双方都采取最优策略时,すぬけ君会获胜。 由 ChatGPT 4.1 翻译