P15733 [JAG 2024 Summer Camp #2] Expression Sum
题目描述
给定一个字符串 $S$。$S$ 中的每个字符是 $\texttt{0123456789+()}$? 中的一个。
令 $T$ 为将 $S$ 中的每个 $\texttt{?}$ 替换为 $\texttt{0123456789+()}$ 中的一个字符后形成的字符串。定义 $\text{eval}(T)$ 如下:
- 如果 $T$ 是一个**合法表达式**,则其值为将 $T$ 作为表达式求值得到的结果。
- 如果 $T$ 不是一个合法表达式,则其值为 $0$。
计算所有可能的替换方式(即将 $S$ 中的每个 $\texttt{?}$ 替换为 $\texttt{0123456789+()}$ 中的一个字符)所对应的 $\text{eval}(T)$ 之和,并将结果对 $998,244,353$ 取模后输出。
**合法表达式**由以下 BNF 定义:
$$
\begin{aligned}
\texttt{} &\ ::= \ \texttt{} \ \texttt{"+"} \ \texttt{} \ | \ \texttt{} \\
\texttt{} &\ ::= \ \texttt{"("} \ \texttt{} \ \texttt{")"} \ | \ \texttt{} \\
\texttt{} &\ ::= \ \texttt{} \ \texttt{} \ | \ \texttt{} \\
\texttt{} &\ ::= \ \texttt{} \ \texttt{} \ | \ \texttt{} \\
\texttt{} &\ ::= \ \texttt{"0"} \ | \ \texttt{} \\
\texttt{} &\ ::= \ \texttt{"1"} \ | \ \texttt{"2"} \ | \ \texttt{"3"} \ | \ \texttt{"4"} \ | \ \texttt{"5"} \ | \ \texttt{"6"} \ | \ \texttt{"7"} \ | \ \texttt{"8"} \ | \ \texttt{"9"}
\end{aligned}
$$
输入格式
输入以如下格式给出:
$$
S
$$
- $1 \leq |S| \leq 3,000$
- $S$ 的每个字符是 $\texttt{0123456789+()}$? 中的一个。
输出格式
输出答案。
说明/提示
翻译由 DeepSeek V3.2 完成