AT_jsc2026_final_e Ensmile
题目描述
给定一个只包含 `:` 和 `|` 的字符串 $S$。设 $S$ 中 `|` 的个数为 $m$。
对于 $k=0,1,\ldots,m$,将 $S$ 中从左起第 $k$ 个 `|` 替换为 `)`,剩余的 $m-k$ 个 `|` 替换为 `(`,得到字符串 $s_k$。
对于 $t=s_0,s_1,\ldots,s_m$,请解决以下问题:
> 对于 $t$,可以重复以下任一操作,直到无法进行为止:
>
> - 选择 $t$ 的任意一个子串 `):`,将其替换为 `:)`。
> - 选择 $t$ 的任意一个子串 `:(`,将其替换为 `(:`。
>
> 在这种情况下,求所有可能的操作序列的个数,并对 $998244353$ 取模。
>
> 需要注意,每一种操作结束后的字符串序列将操作序列区分开。
输入格式
输入为以下格式:
> $S$
输出格式
对于 $t=s_0,s_1,\ldots,s_m$,按照这个顺序,用空格隔开输出每个答案。
说明/提示
### 样例解释 1
例如 $s_1$ 为 `:):(:(:`,当 $t = s_1$ 时,所有可能的操作序列有如下 $4$ 个:
- `:):(:(:` $\to$ `::)(:(:` $\to$ `::)((::`
- `:):(:(:` $\to$ `:)(::(:` $\to$ `:)(:(::` $\to$ `:)((:::`
- `:):(:(:` $\to$ `:):((::` $\to$ `::)((::`
- `:):(:(:` $\to$ `:):((::` $\to$ `:)(:(::` $\to$ `:)((:::`
### 约束条件
- $2 \le |S| \le 5000$
- $S$ 仅包含 `:` 和 `|`
- $S$ 至少包含一个 `|`
由 ChatGPT 5 翻译