#P9820. [ICPC 2020 Shanghai R] Mine Sweeper II

    ID: 9183 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>模拟数学2020上海Special JudgeO2优化ICPC

[ICPC 2020 Shanghai R] Mine Sweeper II

Description

扫雷地图 XX 可以表示为一个 n×mn \times m 的网格。网格中的每个单元格要么是地雷单元格,要么是非地雷单元格。地雷单元格上没有数字。每个非地雷单元格有一个数字,表示其周围地雷单元格的数量。(如果一个单元格与另一个单元格共享至少一个公共点,则它们是相邻的。因此,每个不在边界上的单元格周围有 88 个单元格。)以下是一个 16×3016 \times 30 的扫雷地图,其中标记的单元格表示地雷单元格,空白单元格表示数字为 0 的非地雷单元格。

给定两个大小为 n×mn \times m 的扫雷地图 A,BA, B,你应该在 BB 中修改最多 nm2 \left\lfloor \frac{nm}{2} \right\rfloor (即小于或等于 nm2\frac{nm}{2} 的最大非负整数)个单元格(从非地雷单元格变为地雷单元格或反之),使得 AA 中非地雷单元格的数字之和与 BB 中非地雷单元格的数字之和相同。(如果地图中没有非地雷单元格,则和被视为 00。)

如果存在多个解,输出其中任意一个。如果不存在解,输出一行 -1

Input Format

第一行包含两个整数 n,m(1n,m1000)n, m\,(1\le n,m \le 1000),表示给定的扫雷地图的大小。

接下来的 nn 行的第 ii 行包含一个长度为 mm 的字符串,由 .X 组成,表示扫雷地图 AA 的第 ii 行。. 表示非地雷单元格,X 表示地雷单元格。

接下来的 nn 行的第 ii 行包含一个长度为 mm 的字符串,由 .X 组成,表示扫雷地图 BB 的第 ii 行。. 表示非地雷单元格,X 表示地雷单元格。

Output Format

如果不存在解,输出一行 -1

否则,输出 nn 行表示修改后的扫雷地图 BB。第 ii 行应包含一个长度为 mm 的字符串,由 .X 组成,表示修改后的地图 BB 的第 ii 行。. 表示非地雷单元格,X 表示地雷单元格。

请注意,您不需要输出非地雷单元格上的数字,因为这些数字可以通过输出的扫雷地图确定。

2 4
X..X
X.X.
X.X.
.X..
X.XX
.X..

Hint

我们在 BB 中修改一个单元格。然后 AABB 中非地雷单元格上的数字之和都等于 10。

题面翻译由 ChatGPT-4o 提供。