AT_awtf2026algo_e Even Rows

题目描述

有一个大小为 $N$ 行 $M$ 列的棋盘。我们将第 $i$ 行从上到下、第 $j$ 列从左到右的格子称为 $(i, j)$。 每个格子要么为空,要么有一个棋子。棋盘的状态由 $N$ 个长度为 $M$ 的字符串 $S_1, S_2, \ldots, S_N$ 给出:如果 $S_i$ 的第 $j$ 个字符是 `.`,表示格子 $(i, j)$ 为空;如果是 `O`,表示格子 $(i, j)$ 上有一个棋子。 对于整数 $L$ 和 $R$($1 \leq L \leq R \leq N$),定义 $f(L, R)$ 如下: - 提取棋盘的第 $L$ 行到第 $R$ 行,得到一个有 $R-L+1$ 行的新棋盘 $X$。 - 你可以对 $X$ 执行如下操作若干次(可以为零次): - 任选一个棋子,将其移动到与其相邻(上、下、左或右)的格子。这里,目标格子必须没有其他棋子,并且不能把棋子移动到 $X$ 的外面。 - 你的目标是使 $X$ 的每一行中棋子的数量均为偶数。如果无法达成目标,设 $f(L, R)=0$;如果能达成目标,$f(L, R)$ 为实现目标所需的最少操作次数。 请计算 $\sum_{1 \leq L \leq R \leq N} f(L, R)$ 模 $998244353$ 的结果。 对于每个输入,共有 $T$ 组测试数据。

输入格式

输入从标准输入读入,格式如下: > $T$ > $case_1$ > $case_2$ > $\vdots$ > $case_T$ 每组测试数据格式如下: > $N$ $M$ > $S_1$ > $S_2$ > $\vdots$ > $S_N$

输出格式

对于每组测试数据,输出一行结果。

说明/提示

### 样例解释 1 在第一个测试样例中,各 $f(L, R)$ 的值如下: - $f(1,1)=0$ - $f(1,2)=2$ - $f(1,3)=0$ - $f(2,2)=0$ - $f(2,3)=1$ - $f(3,3)=0$ ### 数据范围 - $1 \leq T \leq 250000$ - $2 \leq N \leq 500000$ - $2 \leq M \leq 10$ - $S_i$ 是长度为 $M$ 的字符串,仅包含 `.` 和 `O`。 - 所有测试数据中 $N$ 的总和不超过 $500000$。 由 ChatGPT 5 翻译