熄灯问题

1.问题描述

有一个有按钮组成的矩阵,其中每行有6个按钮,共5行。

每个按钮的位置上有一盏灯。

当按下一个按钮后,该按钮以及周围位置(上下左右)的灯都会改变一次。即(原来亮的变暗,原来暗的变亮)

对矩阵中的每一盏灯设置一个初始状态。

请你写一个程序,确定需要按下那些按钮,插好使得所有的灯都被熄灭。

例图1:

例图2:

叉号代表按下的按钮

输入:

第一行是一个正整数n表示需要解决的案例数。

每一个案例由5行组成,每一行包括6个数字

这些数字以空格隔开,可以是0或1,0表示初始状态时熄灭的,1表示初始状态是点亮的。

输出:

对于每个案例都先输出一行“case#m”,m是案例序号

接着按照该案例的输入格式输出5行,

1表示需要把对应的按钮按下,

0表示不需要按对应的按钮。

2.算法实现(c语言实现):

3.算法思路:

以第一行作为一个局部;

当第一行的按钮全部作用完以后,第一行可能还会存在部分按钮是亮的

那么要想熄灭第一行第i列的灯,必须按下第二行第i列的灯,类似的,要想熄灭第n行第i列的灯,就需要按下第n+1行,第i列的灯,直到第5行。

其含义是,要想让第一行的灯全部熄灭,那么后面的所有行的灯按下的情况就已经确定。如果作用完最后一行,发现,最后一行的灯也全部熄灭,那么按下的过程就是一个解。

java熄灯问题,枚举算法案例--熄灯问题相关推荐

  1. java手撕KMeans算法实现手写数字聚类(失败案例)

    最近几天刚刚接触机器学习,学完K-Means聚类算法.正好又赶上一个课程项目是识别"手写数字",因为KMeans能够实现聚类,因此自然而然地想要通过KMeans来实现. 前排提示: ...

  2. Java控制台打印爱心算法(今典算法案例)

    Java控制台打印爱心算法(今典算法案例) 要求:利用java语言编写算法在控制台打印爱心算法(根据输入参数的大小决定爱心的大小): 先给大家看看运行的结果吧 输入6 输入8 输入10 相信大家在学习 ...

  3. 诚之和:Java基础知识枚举Enum类介绍以及案例使用详解

    Java语言中的数据类型可以分为两大类,分别是基本数据类型和引用数据类型.本篇文章要介绍的枚举,就是属于Java的引用数据类型.下面,将为大家详细介绍Java中的枚举,以及具体的使用案例. 一.文章序 ...

  4. 枚举算法经典日期问题详解java

    目录 枚举算法 日期问题 枚举思想 具体代码 枚举算法 枚举算法是我们在日常中使用到的最多的一个算法,它的核心思想就是:枚举所有的可能. 枚举法的本质就是从所有候选答案中去搜索正确的解. 使用该算法需 ...

  5. java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法

    /** * java编程题:用Java实现一个冒泡排序算法 */ public class Test12 { public static void main(String[] args) { int[ ...

  6. 随机森林的java算法_spark 随机森林算法案例实战

    随机森林算法 由多个决策树构成的森林,算法分类结果由这些决策树投票得到,决策树在生成的过程当中分别在行方向和列方向上添加随机过程,行方向上构建决策树时采用放回抽样(bootstraping)得到训练数 ...

  7. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  8. spark 随机森林算法案例实战

    随机森林算法 由多个决策树构成的森林,算法分类结果由这些决策树投票得到,决策树在生成的过程当中分别在行方向和列方向上添加随机过程,行方向上构建决策树时采用放回抽样(bootstraping)得到训练数 ...

  9. Java泛型,枚举,注解

    Java泛型,枚举,注解 1 泛型 1.1 什么是泛型 泛型:即参数化类型.在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型.允许在定义类.接口时通过一个标识表示类中某个属性的 ...

  10. java+switch语句+枚举_Java:在子类下使用带有枚举的switch语句

    Java:在子类下使用带有枚举的switch语句 首先,我将说明我对C#中的枚举更加熟悉,看起来java中的枚举非常混乱. 正如您所看到的,我正在尝试在下一个示例中使用switch语句@enums,但 ...

最新文章

  1. 管理-Tomcat和Resin如何配置对指定后缀文件(如:.pptx)下载支持
  2. oracle 10g rac重建crs
  3. 深挖之后吓一跳,谷歌AI专利何止一个dropout,至少30项今日生效
  4. Bootstrap系列 -- 28. 下拉菜单状态
  5. 【移动通信】WIFI6 技术参数
  6. one-to-many many-to-one 为什么只生成了一张表呢?
  7. python全栈开发优势_Python全栈开发多少钱?学Python价格贵吗?
  8. jstorm 读取mysql_jstorm运维经验转载
  9. jdk1.5-1.7新特性详细介绍
  10. C ++ 指针 | 指针与三维数组_6
  11. bzoj3533 [Sdoi2014]向量集 可持久化凸包+二分
  12. html 转盘游戏开发,【scratch】简单的大转盘小游戏
  13. 煤改气加剧雾霾”“石油焦是祸首”等谣言,你中招了吗?
  14. Ubuntu环境下利用Stress对CPU进行满载及半载压力测试
  15. 百度网盘等相关百度产品账号不存在问题
  16. tensorflow识别水果
  17. Revit二次开发之族库管理系统
  18. C++ char类型
  19. 【Tensorflow教程笔记】常用模块 tf.function :图执行模式
  20. 预约上门洗车小程序开发方案上门洗车系统定制开发汽车上门服务系统软件开发

热门文章

  1. Jmeter如何控制取样器执行顺序
  2. 宾州州立大学帕克分校计算机科学,宾州州立大学帕克分校排名一览
  3. Codeforces 1016C Vasya And The Mushrooms(动态规划)
  4. 水果常识大全【图文典藏版】
  5. Arm linux开发板连接笔记本连通外网
  6. win10 进不了修复服务器失败怎么办,win10自动修复失败开不了机怎么办?win10自动修复失败无限循环解决方法大全...
  7. android的otg功能,Android实现OTG功能
  8. 淘宝带你走进——幽灵Crash迷踪案
  9. 热插拔技术详解(上)
  10. 网易云易盾正式成为“中国短视频与直播联盟”常务理事