AT_abc295_h [ABC295Ex] E or m

题目描述

有一个 $N$ 行 $M$ 列的网格 $A$,初始时所有格子上的数字都是 $0$。 接下来进行如下操作: - 对于每个满足 $1 \le i \le N$ 的整数 $i$,可以将 $A$ 的第 $i$ 行从左边起连续的 $0$ 个或更多格子的数字变为 $1$。 - 对于每个满足 $1 \le j \le M$ 的整数 $j$,可以将 $A$ 的第 $j$ 列从上边起连续的 $0$ 个或更多格子的数字变为 $1$。 通过上述操作能够得到的所有 $A$ 的集合记为 $S$。 现在给定一个由 `0`、`1`、`?` 组成的 $N$ 行 $M$ 列的网格 $X$。 将 $X$ 中的每个 `?` 替换为 `0` 或 `1`,一共可以得到 $2^q$ 个不同的网格($q$ 为 $X$ 中 `?` 的总数)。 在这些网格中,有多少个属于 $S$? 由于答案可能非常大,请输出答案对 $998244353$ 取模的结果。

输入格式

输入通过标准输入给出,格式如下: > $N$ $M$ > $X_{1,1}\ X_{1,2}\ \dots\ X_{1,M}$ > $X_{2,1}\ X_{2,2}\ \dots\ X_{2,M}$ > $\vdots$ > $X_{N,1}\ X_{N,2}\ \dots\ X_{N,M}$

输出格式

请输出一个整数,表示答案。

说明/提示

## 限制条件 - $N, M$ 为整数 - $1 \le N, M \le 18$ - $X$ 是由 `0`、`1`、`?` 组成的 $N$ 行 $M$ 列的网格 ## 样例解释 1 满足条件的网格共有如下 $6$ 个: ``` 011 011 001 010 011 110 001 011 011 111 110 111 ``` ## 样例解释 2 即使 $X$ 中没有 `?`,答案也有可能为 $0$。 ## 样例解释 3 请注意,答案需要对 $998244353$ 取模。 由 ChatGPT 4.1 翻译