#ABC295Ex. E or m

E or m

E or m

题目描述

我们有一个 NN 行 MM 列的网格 AA。初始时,每个方格上都写着 00。

接下来执行以下操作。

  • 对每个满足 1≤i≤N1 \le i \le N 的整数 ii,在第 ii 行中,把最左侧的零个或多个方格中的数字改为 11。
  • 对每个满足 1≤j≤M1 \le j \le M 的整数 jj,在第 jj 列中,把最上方的零个或多个方格中的数字改为 11。

设 SS 为可以通过这种方式得到的网格的集合。

给你一个由 0、1、? 组成的 NN 行 MM 列的网格 XX。 把每个 ? 替换成 0 或 1,共可以得到 2q2^q 个网格,其中 qq 是 XX 中 ? 的个数。问其中有多少个属于 SS? 这个数量可能非常巨大,请对 998244353998244353 取模。

输入格式

输入按以下格式从标准输入给出:

NN MM
X1,1X_{1,1} X1,2X_{1,2} …\dots X1,MX_{1,M}
X2,1X_{2,1} X2,2X_{2,2} …\dots X2,MX_{2,M}
⋮\vdots
XN,1X_{N,1} XN,2X_{N,2} …\dots XN,MX_{N,M}

输出格式

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

样例

2 3
0?1
?1?
6

以下六个网格属于 SS。

011  011  001
010  011  110

001  011  011
111  110  111
5 3
101
010
101
010
101
0

XX 中可能没有 ?,答案也可能为 00。

18 18
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
??????????????????
462237431

请务必对 998244353998244353 取模后输出。

数据范围

  • NN 和 MM 是整数。
  • 1≤N,M≤181 \le N,M \le 18
  • XX 是由 0、1、? 组成的 NN 行 MM 列的网格。
难度 NOI/NOI+/CTS
通过率 —
尝试 0
通过 0
ID
2652
类型
传统题
Time Limit
572ms
Memory Limit
1024MiB
上传者
标签