编程题
### 问题描述 扫雷是一款经典的游戏。如下图: ![图片描述](https://dn-simplecloud.shiyanlou.com/questions/uid1792586-20231214-1702543646589) 规则如下。 1. 地图为 $n \times m$ 的矩阵。 2. 地图中包含地雷和数字。 3. 如果某个点是地雷块,那么用 `X` 表示。 4. 如果某个点是数字块,那么用 $0 \sim 8$ 表示,具体的数值为该点周围地雷的数量(最少为 $0$ 个,最多为 $8$ 个)。 5. 如果某个点未知,即可能是地雷或者数字,我们用 `*` 表示。 **周围**:对于 $(x,y)$ 点来说,周围为 $(x-1, y),(x+1, y),(x, y-1),(x, y+1),(x-1, y-1),(x-1, y+1),(x+1, y-1),(x+1, y+1)$ 八个位置。需要注意的是,**超过边界的点不能算作周围的点**。 小蓝是扫雷高手,于是他在原来扫雷游戏的基础上改动了一下。 现在给定你一个 $3 \times m$ 的地图,其中第二行全部都不是地雷,第一行和第三行都是未知,小蓝将第二行的数字全部告诉你,请问这幅地图有多少种不同的可能? 也就是说,假设每个格子有 $10$ 种情况(`X` 或者 $0 \sim 8$),那么 $3 \times m$ 的地图总共有 $10^{3m}$ 情况,请你找出满足以下两个要求的地图数量: 1. 地图合法,即满足扫雷规则。 2. 第二行与给定第二行的值相同。 答案可能很大,请对 $998244353$ 取模。 ### 输入格式 第一行输入一个整数 $m$。 第二行输入 $m$ 个整数 $p_1, p_2, p_3, ..., p_m$,代表第地图中 $2$ 行第 $i$ 列的值。 ### 输出格式 输出一个整数,代表可能的种类数,答案可能很大,请对 $998244353$ 取模。 ### 样例输入 ```bash 3 2 3 2 ``` ### 样例输出 ```bash 8 ``` ### 说明 以下 $8$ 种。 ```bash XX1 01X XXX 000 X2X 1X1 1XX X10 232 232 232 232 232 232 232 232 01X XX1 000 XXX 1X1 X2X X10 1XX ``` ### 评测数据范围 $1 \le n \le 5 \times 10^5,0 \le p_i \le 8$。
查看答案
赣ICP备20007335号-2