#GESP420260601. 【GESP-四级】-2026.06-扫雷
【GESP-四级】-2026.06-扫雷
题目描述
小杨同学正在游玩经典游戏「扫雷」,他想自己生成一个「扫雷」的地图。
小杨同学希望生成的地图大小为 n 行 m 列,一共 n×m 个区块。区块行号为 1,2,…,n,列号为 1,2,…,m。其中一些区块为雷区,其它区块不为雷区。
小杨同学指定了 q 个区块为雷区,而其它区块均不为雷区。小杨同学希望你帮忙计算非雷区的区块,每个区块与多少个雷区相邻?
我们定义区块相邻,当且仅当两个区块至少有一个公共顶点(也就是说对于不在地图边缘的区块,周围 8 个区块均与其相邻)。
输入格式
输入包含 q+1 行。 第一行,三个正整数 n,m,q,分别表示地图行数和列数,以及雷区数量。 接下来的 q 行,每行有 2 个整数,分别表示第 i 个雷区的行号和列号。 保证输入的雷区不重复。
输出格式
输出 n 行,每行 m 个字符(使用空格分割),对于第 i 行第 j 列,输出地图对应区块的信息:
- 如果为雷区,输出 *;
- 如果不是雷区,输出其相邻雷区数量(输出 0 到 8 中的一个数字)。
样例输入 1
3 4 4
1 1
1 3
2 4
3 2
样例输出 1
* 2 * 2
2 3 3 *
1 * 2 1
特别提醒
输出时每个格子的信息之间用一个空格分隔;雷区输出 *。
数据范围
保证 3≤n,m≤500,1≤q≤n×m;雷区坐标均在地图内且互不重复,行号和列号从 1 开始。