欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF984B.Minesweeper
Minesweeper
题目描述
有一天,Alex 决定回忆童年,那时计算机性能还不强,很多人只能玩自带的游戏。那时 Alex 很喜欢玩扫雷。他总是幻想自己在拯救世界,阻止恐怖分子安放的炸弹,但他很少能赢。
现在 Alex 长大了,最难的关卡也能轻松获胜。这很快让他感到无聊,于是他想:如果小时候电脑给他的是无效的扫雷棋盘,是不是他才一直赢不了?
他需要你的帮助来检查棋盘的有效性。
一个扫雷棋盘是一个 的矩形,每个格子要么是空的,要么包含 到 的数字,要么是一个炸弹。棋盘是有效的当且仅当对于每个格子:
- 如果格子里有数字 ,那么恰好有 个相邻格子里有炸弹。
- 如果格子是空的,那么所有相邻格子都不能有炸弹。
两个格子相邻当且仅当它们有公共边或公共角(即每个格子最多有 个相邻格子)。
输入格式
第一行包含两个整数 和 (),表示棋盘的大小。
接下来的 行描述棋盘的内容。每行包含 个字符,每个字符为 “.”(表示空格)、“*”(表示有炸弹),或 到 的数字。
输出格式
如果棋盘有效,输出 “YES”;否则输出 “NO”。
你可以任意选择字母的大小写。
说明/提示
在第二个样例中,答案是 “NO”,因为如果炸弹的位置不变,第一行应该是 “21”。
你可以在 维基百科的相关条目 了解更多关于扫雷的信息。
由 ChatGPT 4.1 翻译
样例
3 3
111
1*1
111
YES
2 4
*.*.
1211
NO
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |