AT_scpc2026_div1_g 오fill

题目描述

#### 表示语言 Cenix 想要用如下六种方形瓷砖填充一个 $N \times M$ 的网格。每种瓷砖的数量都充足,并且在放置前可以旋转。在放置瓷砖时,每一条连通到“路径”的边都必须与相邻瓷砖的同样连通到“路径”的一条边相接。然而,并不是所有路径都必须彼此连通。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_scpc2026_div1_g/0a34bd7e0d2962d1ca9d7804c38ca265014bfd0e5ec0c8f85ab14f7860039902.png) 在填充网格的过程中,Cenix 发现任务太简单了。现在,Cenix 打算只用仅连接一个边的瓷砖和连接三个边的瓷砖继续填充剩余的空格。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_scpc2026_div1_g/cbdd684bab8b5dccf1cb6344a5f0d43829201c43d6babf066c9235a44320d24d.png) 现给定一个网格,其中部分格子已经铺有瓷砖。 - $i$ 行 $j$ 列位置已经放置的瓷砖类型记作 $A_{i,j}$。 - 如果该格子未放瓷砖,则 $A_{i,j} = -1$。 - 若已铺有瓷砖,则 $A_{i,j}$ 等于如下数之和:若瓷砖与上边相连则加 $1$,与下边相连加 $2$,与左边相连加 $4$,与右边相连加 $8$。 请计算使用仅连接一条边和三条边的两种瓷砖,将所有剩余的格子填满的方案数,答案对 $998\,244\,353$ 取模。

输入格式

输入从标准输入中给出,格式如下: > $N\ M$ > $A_{1,1}\ A_{1,2}\ \dots\ A_{1,M}$ > $A_{2,1}\ A_{2,2}\ \dots\ A_{2,M}$ > $\vdots$ > $A_{N,1}\ A_{N,2}\ \dots\ A_{N,M}$

输出格式

输出填充该网格的方案数,对 $998\,244\,353$ 取模。

说明/提示

### 样例解释 1 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_scpc2026_div1_g/7603ad36b6a2334c48decf7e06691cbb74f8eba9c5924b952bbc1c2bd53e3bc2.png) ### 数据范围 - $1 \le N, M \le 500\,000$ - $1 \le NM \le 500\,000$ - $-1 \le A_{i,j} \le 15$ - 所有输入值均为整数。 由 ChatGPT 5 翻译