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

    ID: 11049 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>模拟数学2020上海Special JudgeO2优化ICPC

[ICPC 2020 Shanghai R] Mine Sweeper II

题目描述

扫雷地图 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。

输入格式

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

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

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

输出格式

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

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

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

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

提示

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

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