提供全方位、多语种的编程教程,助您从零基础到进阶开发。
编程教程 - 视频网课
编程教程 - 题解博客
编程教程 - Matplotlib库教程
编程教程 - Pandas库教程
编程教程 - 编程教辅指南
编程教程 - 编程问答
编程教程 - MySQL教程
编程教程 - JavaScript教程
编程教程 - Web网站搭建与管理
编程教程 - MCI多媒体编程
编程教程 - C语言图形编程
编程教程 - CSS教程
编程教程 - HTML教程
编程教程 - 算法竞赛教程
编程教程 - 趣味项目教程
编程教程 - ACM与蓝桥杯竞赛指南
编程教程 - Socket套接字编程
编程教程 - Linux命令
编程教程 - Java教程
编程教程 - C语言函数库
编程教程 - 编译器教程
编程教程 - Python教程
编程教程 - 单片机教程
编程教程 - 数据结构教程
编程教程 - C++教程
编程教程 - C语言教程
编程教程 - 计算机二级C语言
编程教程 - QT开发
编程教程 - 代码模板
编程教程 - STL库教程
编程教程 - MySQL函数库(超级全面)
编程教程 - PHP教程
编程教程 - 全部教程
提供海量题库,算法实践和真题,包括蓝桥杯历年真题、数据结构算法以及书籍配套习题等等,并已按照章节顺序编排,系统化提升您的编程能力。
编程训练 - 蓝桥杯真题
编程训练 - 编程零基础习题
编程训练 - 数据结构配套题
编程训练 - 信息学一本通 C/C++ 基础
编程训练 - 信息学一本通 基础算法
编程训练 - ACM 蓝桥杯竞赛入门
编程训练 - OpenJudge 题库
编程训练 - Java 程序设计配套习题
编程训练 - 信息学一本通 数据结构
编程训练 - Python 入门编程题库
编程训练 - 谭浩强 C 语言课后习题
编程训练 - Python程序设计配套习题
编程训练 - 信息学一本通提高篇
编程训练 - 凌云训练
编程训练 - 全部编程训练
编程训练 - 全部题目
提供包括C语言、C++、Java、Python等编程语言的试卷,还包括计算机二级、408考研等历年真题,模拟真实考试,检验学习成果。
编程考试 - C语言试卷
编程考试 - C++试卷
编程考试 - CSP考试
编程考试 - 数据结构与算法
编程考试 - 计算机二级
编程考试 - Java试卷
编程考试 - 考研真题
编程考试 - Linux
编程考试 - Mysql数据库
编程考试 - 计算机网络
编程考试 - NOIP真题
编程考试 - Python试卷
编程考试 - 高校题库
编程考试 - 人工智能
编程考试 - 软件工程
编程考试 - 全部试卷
老师可创建编程比赛、组建团队、进行自主或标准比赛,实现高效编程教学管理。
强大的AI编程辅助工具,支持代码解释、语言转换、查错与生成等功能。
小蓝最近迷上了一款名为《点亮》的谜题游戏,游戏在一个 n × n 的格子棋盘上进行,棋盘由黑色和白色两种格子组成,玩家在白色格子上放置灯泡,确保任意两个灯泡不会相互照射,直到整个棋盘上的白色格子都被点亮(每个谜题均为唯一解)。灯泡只会往水平和垂直方向发射光线,照亮整行和整列,除非它的光线被黑色格子挡住。黑色格子上可能有从 0 到 4 的整数数字,表示与其上下左右四个相邻的白色格子共有几个灯泡;也可能没有数字,这表示可以在上下左右四个相邻的白色格子处任意选择几个位置放置灯泡。游戏的目标是选择合适的位置放置灯泡,使得整个棋盘上的白色格子都被照亮。
例如,有一个黑色格子处数字为 4,这表示它周围必须有 4 个灯泡,需要在他的上、下、左、右处分别放置一个灯泡;如果一个黑色格子处数字为 2,它的上下左右相邻格子只有 3 个格子是白色格子,那么需要从这三个白色格子中选择两个来放置灯泡;如果一个黑色格子没有标记数字,且其上下左右相邻格子全是白色格子,那么可以从这 4 个白色格子中任选出 0 至 4 个来放置灯泡。
题目保证给出的数据是合法的,黑色格子周围一定有位置可以放下对应数量的灯泡。且保证所有谜题的解都是唯一的。
现在,给出一个初始的棋盘局面,请在上面放置好灯泡,使得整个棋盘上的白色格子被点亮。
输入的第一行包含一个整数 n,表示棋盘的大小。
接下来 n 行,每行包含 n 个字符,表示给定的棋盘。字符 . 表示对应的格子为白色,数字字符 0、1、2、3、4 表示一个有数字标识的黑色格子,大写字母 X 表示没有数字标识的黑色格子。
5 ..... .2.4. ..4.. .2.X. .....
...O. .2O4O .O4O. .2OX. O....
答案对应的棋盘布局如下图所示:
对于所有评测用例,2 ≤ n ≤ 5 ,且棋盘上至少有 15% 的格子是黑色格子。