33OJ
登录 注册

#P17551. [JAG 2026 Summer Camp #2] Take Many ABA

[JAG 2026 Summer Camp #2] Take Many ABA

题目描述

对于一个仅由 A 和 B 组成的字符串 TT,定义 f(T)f(T) 为最多能够执行以下操作的次数。

操作: 删除 TT 中一个(不要求连续的)子序列 ABA,并将删除后留下的空隙合拢。

给定一个由 A、B 和 ? 组成的字符串 SS。将 SS 中每个 ? 替换为 A 或 B,可以得到若干字符串 TT。求所有这些字符串 TT 的 f(T)f(T) 之和,对 998244353998244353 取模。

输入格式

输入格式如下:

S

SS 是一个由 A、B 和 ? 组成的字符串,长度在 33 到 10001000 之间(含端点)。

输出格式

输出答案。

A?B?
2
?B?A?B?
15
????????????????????
4595728

提示

第一个样例中,可能得到的字符串 TT 及其对应的 f(T)f(T) 如下:

  • T=AABAT=\texttt{AABA}:f(T)=1f(T)=1。
  • T=AABBT=\texttt{AABB}:f(T)=0f(T)=0。
  • T=ABBAT=\texttt{ABBA}:f(T)=1f(T)=1。
  • T=ABBBT=\texttt{ABBB}:f(T)=0f(T)=0。

因此,答案为 1+0+1+0=21+0+1+0=2。