费解的开关

思路:类似于熄灯问题:JAVA实现

import java.util.Scanner;public class Main {//用来遍历按钮四个方向,注意数组位置和在坐标系是不同的//原地,左右上下static int[] dx = { 0, 0, 0, -1, 1 };static int[] dy = { 0, -1, 1, 0, 0 };public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();char[][] light = new char[5][5];for (int i = 0; i < n; i++) {for (int j = 0; j < 5; j++) {light[j] = sc.next().toCharArray();}System.out.println(work(light));}}static int work(char[][] light) {int min = Integer.MAX_VALUE;char[][] map = new char[5][5];for (int i = 0; i < (1 << 5); i++) {for (int j = 0; j < 5; j++) {for (int k = 0; k < 5; k++) {//注意,JAVA对二维数组的clone是浅拷贝,即把数组地址公用,如果直接使用//char[][] map=light.clone(),对这两个数组任意一个改变都会直接同时改变另一个的值map[j][k] = light[j][k];}}int res = 0;for (int j = 0; j < 5; j++) {if (((i >> j) & 1) == 1) {res += 1;turn(0, j, map);}}for (int j = 0; j < 4; j++) {for (int k = 0; k < 5; k++) {if (map[j][k] == '0') {res += 1;turn(j + 1, k, map);}}}boolean isOK = true;for (int j = 0; j < 5; j++) {if (map[4][j] == '0') {isOK = false;break;}}if (isOK) {min = Math.min(res, min);}}if(min>6) return -1;return min;}private static void turn(int i, int j, char[][] map) {for (int n = 0; n < 5; n++) {int x = i + dx[n];int y = j + dy[n];if (x >= 0 && x < 5 && y >= 0 && y < 5) {map[x][y] ^= 1;}}}}

蓝桥杯练习:费解的开关相关推荐

  1. 蓝桥杯嵌入式G431学习之开关LED灯

    蓝桥杯嵌入式G431学习之开关LED灯 1.直接开关LED灯 在/* USER CODE BEGIN 0 / 在此写入代码 / USER CODE END 0 */ /*PD2为LED锁存器控制引脚* ...

  2. 蓝桥杯国赛五一训练赛(1)

    蓝桥杯国赛五一训练赛(1)(链接) 问题 A: 费解的开关 你玩过"拉灯"游戏吗?25盏灯排成一个5x5的方形.每一个灯都有一个开关,游戏者可以改变它的状态.每一步,游戏者可以改变 ...

  3. AcWing 蓝桥杯AB组辅导课 01、递归与递推

    文章目录 前言 一.递归 知识点 例题 题目1:AcWing 95.斐波那契数列[简单,递归写法] 题目2:AcWing 92.递归实现指数型枚举[简单] 题目3:AcWing 94.递归实现排列型枚 ...

  4. [蓝桥小记]蓝桥杯参赛经历分享

    <蓝桥小记>         蓝桥杯省赛从9:00-13:00历时4个小时,今年(2018年)的题和去年的题差不多有易有难,整体来说今年出的题即使做不出来也会让你觉得比较生动有趣味性,可能 ...

  5. 合泰单片机做电压表_启士 | 蓝桥杯零基础单片机教程9 I2C介绍(上)

    这是 北航士谔书院 的第 940 篇推送 北航士谔书院X大班提醒您: 道路千万条,学习第一条 不搞单片机,开学两行泪 --新春快乐,我们又回来了! 本文对 I²C 总线的协议做出详细的介绍,并对其在 ...

  6. 蓝桥杯青少年创意编程C++组赛前集训教程包

    1 蓝桥杯青少年创意编程C++组 赛前集训教程包 版本-190919 蓝桥杯大赛组 2 目录 第01 课基本数据类型及运算符...................................... ...

  7. 蓝桥杯实验4--按键之独立键盘(proteus仿真)

    开始试试按键的部分 首先说一下什么是按键 按键分为按结构可分为触点式和无触点式两类.开发板上用的是触点式的按键.按键在接口上分类可分为编码键盘和非编码键盘.按键通常使用机械式触点式按键开关,但是由于机 ...

  8. PCF8591详解(蓝桥杯单片机模块(IIC总线))

    文章目录 概述 特性 总体 框图 引脚 功能描述 寻址 控制字节 D/A转换 D/A转换过程 A/D转换 A/D转换过程 蓝桥杯部分 原理图部分 AD部分 DA部分 结束 概述 PCF8591是一款单 ...

  9. 蓝桥杯单片机之PCF8591模块的使用

    蓝桥杯单片机之PCF8591模块的使用 简述 原理图: 引脚定义: 相关地址 IIC寻址设备地址 控制地址 IIC时序分析 数模转换D/A 模数转换 代码: 一:光敏电阻和可变电阻的AD转换,S4控制 ...

  10. 历届蓝桥杯Scratch编程省赛 初级 中级 青少年编程比赛省赛真题解析【持续更新 已更新至35题】

    历届蓝桥杯scratch省赛真题 历年蓝桥杯Scratch编程比赛省赛真题详细解析 省赛真题35-水面倒影 [蓝桥杯省赛真题35]Scratch水面倒影 少儿编程scratch编程蓝桥杯省赛真题讲解_ ...

最新文章

  1. react hooks使用_如何使用Hooks将React类组件转换为功能组件
  2. Unet神经网络为什么会在医学图像分割表现好?
  3. JDBC--代码实现增删改查、及SQL注入问题解决
  4. mysql锁机制为何设计如此复杂_再谈mysql锁机制及原理—锁的诠释
  5. python开发基础教程
  6. 带学生参加电赛,5个国一,2个国二!15个省奖!
  7. 2015 多校赛 第三场 1002 (hdu 5317)
  8. Codeforces Round #387 (Div. 2) A+B+C+D!
  9. css显示内容越来越模糊_纯干货,前端学者的福音!如何使用css滤镜改变图片颜色...
  10. 经典好文!java继承父类注解
  11. android 9.0 SystemUI状态栏下拉快捷添加截图快捷开关
  12. Unsupported class file major version 55
  13. 第十三届蓝桥杯模拟赛第二期JAVA组个人题解
  14. 代码审计:审计思路之实例解说全文通读
  15. 19年职业院校技能大赛总结
  16. 程序员小说 Out Of Memory (一)
  17. 简单介绍C++中各种指令的中文意思,适合初学者
  18. 张一鸣宣布卸任字节跳动CEO;贝壳找房创始人左晖因病去世 | 高管变动2021年5月17日-22日...
  19. 小学生心理测试软件,小学生趣味心理测试:性格测试
  20. python三国演义人物出场统计ppt_Python学习之四大名著人物出场次数Python代码-Go语言中文社区...

热门文章

  1. 计算机网络核心知识。
  2. Cannot find current proxy: Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available.
  3. dfasdfad大发
  4. 习题5-5 使用函数统计指定数字的个数(15 分)
  5. 2019unity游戏开发需要学什么?
  6. 物理内存管理-ucore操作系统的PADDR宏
  7. vm12装xp系统步骤
  8. 小米路由器信号强度测试软件,内置天线给力 小米路由器信号实测
  9. 计算机辅助设计 Photoshop 教案,计算机辅助设计(photoshop)
  10. 语音输入是计算机在哪个领域的应用,语音识别技术是什么_语音识别技术应用领域介绍...