AT_arc157_c [ARC157C] YY Square

题目描述

在一个 $H$ 行 $W$ 列的网格中,每个格子上写有字符 `X` 或 `Y`。从上往下第 $i$ 行,从左往右第 $j$ 列的格子记作 $(i, j)$。网格中的字符由 $H$ 个字符串 $S_1, S_2, \dots, S_H$ 给出,第 $i$ 个字符串 $S_i$ 的第 $j$ 个字符表示格子 $(i, j)$ 上的字符。 从格子 $(1, 1)$ 出发,每次只能向下或向右移动,最终到达格子 $(H, W)$。对于一条这样的路径 $P$: - 用 $ \mathrm{str}(P) $ 表示按照路径 $P$ 经过的格子上的字符依次拼接得到的、长度为 $H + W - 1$ 的字符串; - 定义路径 $P$ 的**得分**为 $ \mathrm{str}(P) $ 中相邻的 `Y` 字符对的**个数的平方**。 所有可能的路径 $P$ 的数量为 $ \displaystyle\binom{H + W - 2}{H - 1} $。请计算所有可能路径的得分之和,并对 $998244353$ 取模。 其中,$ \displaystyle\binom{N}{K} $ 表示从 $N$ 个不同元素中选出 $K$ 个的组合数(二项式系数)。

输入格式

输入按以下格式从标准输入给出: > $H$ $W$ > $S_1$ > $S_2$ > $\vdots$ > $S_H$

输出格式

输出所有可能路径的得分之和对 $998244353$ 取模的结果。

说明/提示

### 限制条件 - $1 \leq H \leq 2000$ - $1 \leq W \leq 2000$ - $S_i$($1 \leq i \leq H$)是仅由 `X` 和 `Y` 组成的、长度为 $W$ 的字符串。 ### 样例解释 1 所有可能的路径 $P$ 有 $(1, 1) \to (1, 2) \to (2, 2)$ 和 $(1, 1) \to (2, 1) \to (2, 2)$ 两种: - 对于 $(1, 1) \to (1, 2) \to (2, 2)$,$\mathrm{str}(P) = $`YYY`,第 $1, 2$ 个字符和第 $2, 3$ 个字符各有一对相邻的 `Y`,共 $2$ 处,因此得分为 $2^2 = 4$。 - 对于 $(1, 1) \to (2, 1) \to (2, 2)$,$\mathrm{str}(P) = $`YXY`,没有相邻的 `Y`,得分为 $0^2 = 0$。 所以总和为 $4 + 0 = 4$。 ### 样例解释 2 两条路径的 $\mathrm{str}(P)$ 都是 `XYY`,得分均为 $1^2 = 1$。 ### 样例解释 3 请输出所有路径得分之和对 $998244353$ 取模的结果。 由 ChatGPT 4.1 翻译