题目描述
有9盏灯与9个开关,编号都是1~9。

每个开关能控制若干盏灯,按下一次会改变其控制的灯的状态(亮的变成不亮,不亮变成亮的)。

具体如下:

第一个开关控制第二,第四盏灯;

第二个开关控制第一,第三,第五盏灯;

第三个开关控制第二,第六盏灯;

第四个开关控制第一,第五,第七盏灯;

第五个开关控制第二,第四,第六,第八盏灯;

第六个开关控制第三,第五,第九盏灯;

第七个开关控制第四,第八盏灯;

第八个开关控制第五,第七,第九盏灯;

第九个开关控制第六,第八盏灯。

开始时所有灯都是熄灭的,开关是关闭着的。要求按下若干开关后,使得只有4盏灯亮着。
输入

输出
输出所有可能的方案,每行一个方案,每一行有9个字符,从左往右第i个字符表示第i个开关的状态(" 0" 表示关闭," 1" 表示打开),按字典序输出。下面的样例输出只是部分方案。
样例输入

样例输出
000001011
000001110
000001111
思路:数据量不大,直接暴力搜索,然后判断是否符合题意。注意字典序是从小到大。
代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=15;
int vis[maxx];
int a[maxx];inline int check()
{memset(a,0,sizeof(a));if(vis[1]) a[2]++,a[4]++;if(vis[2]) a[1]++,a[3]++,a[5]++;if(vis[3]) a[2]++,a[6]++;if(vis[4]) a[1]++,a[5]++,a[7]++;if(vis[5]) a[2]++,a[4]++,a[6]++,a[8]++;if(vis[6]) a[3]++,a[5]++,a[9]++;if(vis[7]) a[4]++,a[8]++;if(vis[8]) a[5]++,a[7]++,a[9]++;if(vis[9]) a[6]++,a[8]++;int num=0;for(int i=1;i<=9;i++) if(a[i]&1) num++;return num==4;
}
inline void dfs(int x)
{if(x==10){if(check()){for(int i=1;i<=9;i++) cout<<vis[i];cout<<endl;}return ;}dfs(x+1);//先考虑不开的情况,这样字典序就是最小的了。if(vis[x]==0) {vis[x]=1;dfs(x+1);vis[x]=0;}
}
int main()
{memset(vis,0,sizeof(vis));dfs(1);return 0;
}

努力加油a啊,(o)/~

[蓝桥杯][算法提高VIP]开灯游戏(dfs)相关推荐

  1. [蓝桥杯][算法提高VIP]开灯游戏-dfs

    题目描述 有9盏灯与9个开关,编号都是1~9. 每个开关能控制若干盏灯,按下一次会改变其控制的灯的状态(亮的变成不亮,不亮变成亮的). 具体如下: 第一个开关控制第二,第四盏灯: 第二个开关控制第一, ...

  2. c语言oj题1923偶数之和,问题 1923: [蓝桥杯][算法提高VIP]学霸的迷宫 (BFS)

    题目描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  3. [蓝桥杯][算法提高VIP]夺宝奇兵-递推+记忆化搜索

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  4. [蓝桥杯][算法提高VIP]夺宝奇兵-dp

    题目描述 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 " ...

  5. [蓝桥杯][算法提高VIP]阮小二买彩票

    [蓝桥杯][算法提高VIP]阮小二买彩票 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察下 ...

  6. [蓝桥杯][算法提高VIP]阮小二买彩票[递归全排列]

    题目 1578: [蓝桥杯][算法提高VIP]阮小二买彩票 时间限制: 1Sec 内存限制: 128MB 提交: 348 解决: 153 题目描述 在同学们的帮助下,阮小二是变的越来越懒了, 连算账都 ...

  7. [蓝桥杯][算法提高][vip] 阮小二买彩票

    蓝桥杯 ADV-66 算法提高 阮小二买彩票 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电脑前看自己的银行账户的钱是否有变多.可是一段时间观察 ...

  8. [蓝桥杯][算法提高VIP]合并石子(区间dp+平行四边形优化)

    题目描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数.求把所有石子合并成一堆的最小花费. 输入 输入第一行包含一个整数 ...

  9. 摩尔斯电码的c语言程序,[蓝桥杯][算法提高VIP]摩尔斯电码 (C语言代码)

    解题思路: 录入,分段,比较 注意事项: 不要去关注最后的几句话,完全误导人,我用getchar()结合EOF做得出来,但是提交总是报错,蓝桥杯官网和C语言网都一样. 参考代码:#include #i ...

最新文章

  1. hurst代码 python_python数据类型—字符串
  2. html php打开,html格式如何打开
  3. 建立索引lucene_用Lucene建立搜索索引
  4. python创建虚拟串口
  5. WebApi系列~自主宿主HttpSelfHost的实现
  6. OpenShift 4 之升级集群
  7. 防爆知识:危险场所划
  8. AT2164 AGC006C Rabbit Exercise
  9. BZOJ4011:[HNOI2015]落忆枫音(DP,拓扑排序)
  10. kali激活phpstorm_kali+phpstorm+xdebug+firefox配置本地/远程调试
  11. android 人脸识别边框_Android camera实时预览 实时处理,人脸识别示例
  12. 怎样用stm32驱动ds18b20温度芯片
  13. TextCNN文本分类实践
  14. Sematic UI框架的学习-button样式(1)
  15. pyecharts世界地图用:国家中英文对照表
  16. 学会学习 学会交往——访我校85级机电系毕业生辛平
  17. php推送手机,PHP_解析php做推送服务端实现ios消息推送,准备工作1.获取手机注册应用 - phpStudy...
  18. 圆形与矩形碰撞算法分析
  19. eip协议通信_工业通讯 | EtherNET/IP协议基础知识(Part 3)||附视频讲解
  20. unity3d 动画制作_Unity 3D中的动画和动画制作

热门文章

  1. Python—实训day10—Matplotlib数据可视化和scikit-learn构建模型
  2. 关于vscode插件autoprefixer 3.0无法使用的问题
  3. css钢铁侠视角,CSS3 Iron Man 钢铁侠肖像
  4. 计算机图形学基础期末考试试题,计算机图形学基础_试卷(B)答案
  5. 图片优化_Web 性能优化: 图片优化让网站大小减少 62%
  6. php mysql 绑定变量,在MYSQL中,怎么用PDO绑定变量的方式插入数据?
  7. compare to造句及翻译_compare to造句
  8. java list 面试题_java【集合】面试题
  9. mysql change命令_Mysql 操作基本命令大全
  10. js 只准输入数字_基于TensorFlow.js的JavaScript机器学习