激光样式

x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。

安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!

国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?

显然,如果只有3台机器,一共可以成5种样式,即:
全都关上(sorry, 此时无声胜有声,这也算一种)
开一台,共3种
开两台,只1种

30台就不好算了,国王只好请你帮忙了。

要求提交一个整数,表示30台激光器能形成的样式种数。

DFS

先声明一个light[31]数组表示30个灯,0代表不亮,1代表亮;从0开始搜索,如果搜索到30说明是一种解决方案,n++;如果前一个灯是0,那么当前灯标记为1继续搜索,搜索完之后要回溯将当前灯标记为0;之后再搜索下一个灯。

Python

def dfs(idx):if idx == 30:global ansans += 1returnif light[idx - 1] == 0:light[idx] = 1dfs(idx + 1)light[idx] = 0dfs(idx + 1)if __name__ == '__main__':ans, light = 0, [0] * 30dfs(0)print(ans)

C++

#include <iostream>
#include <cstring>using namespace std;int light[31];
long long n=0;void dfs(int num) {if (num == 30) {n++;return;}if (light[num - 1] == 0) {light[num] = 1;dfs(num + 1);light[num] = 0;}dfs(num + 1);
}int main() {dfs(0);cout << n << endl;return 0;
}

Answer:2178309

2018年第九届蓝桥杯 - 国赛 - C/C++大学B组 - B. 激光样式相关推荐

  1. 2018年第九届蓝桥杯 - 省赛 - C/C++大学A组 - F.航班时间

    航班时间 [问题背景] 小h前往美国参加了蓝桥杯国际赛.小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到"现在飞机飞得真快,两小时就能到美国了". 小h对超音速飞行 ...

  2. 2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - G.螺旋折线

    螺旋折线 如图p1.png所示的螺旋折线经过平面上所有整点恰好一次. 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度. 例如dis(0, 1)= ...

  3. 2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - F.递增三元组

    递增三元组 给定三个整数数组 A = [A1, A2, - AN], B = [B1, B2, - BN], C = [C1, C2, - CN], 请你统计有多少个三元组(i, j, k) 满足: ...

  4. 2018年第九届蓝桥杯 - 省赛 - C/C++大学A组 - A. 分数

    标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来. 类似:3/2 当然,这只是加了前2项而已.分子 ...

  5. 2018年第九届蓝桥杯国赛B组C++真题汇总

    1. 换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种. 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱. 小明有点强迫症,他坚持要求200元换 ...

  6. 2016年第七届蓝桥杯 - 国赛 - C/C++大学B组 - D. 机器人塔

    机器人塔 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是: A ...

  7. 第十届蓝桥杯国赛C/C++ 大学B组 试题C: 拼接

    试题 C: 拼接 本题总分:10 分 [问题描述] 小明要把一根木头切成两段,然后拼接成一个直角. 如下图所示,他把中间部分分成了 n × n 的小正方形,他标记了每个小正方 形属于左边还是右边.然后 ...

  8. 2015年第六届蓝桥杯 - 省赛 - C/C++大学A组 - G. 手链样式

    手链样式 小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙. 他想用它们串成一圈作为手链,送给女朋友. 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数. 不要 ...

  9. 7.python解答2018年第九届蓝桥杯省赛C++A组 分数

    7.python解答2018年第九届蓝桥杯省赛C++A组 分数 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项,求这个和是多少,结果 ...

最新文章

  1. AI一眼识别这是什么鸟 “我们来找茬”十级选手诞生
  2. 不给编制,非升即走,青年科学家该何去何从?
  3. DTS增量/同步支持DDL迁移的说明
  4. java8 stream 做累加_Java8新特性之Stream(上)|乐字节
  5. linux shutdown 命令 关机 重启
  6. java enum.parse_java 枚举的简单使用(enum)
  7. 拯救你的颈椎,笔记本支架如何选择?
  8. Theano 中文文档 0.9 - 3. Theano一览
  9. 机器视觉——单目相机模型(坐标标定以及去畸变)
  10. dhcp协议_什么是DHCP?总结DHCP优缺点和工作原理
  11. 超详细JDK下载与安装步骤
  12. VMware14虚拟机安装Ubuntu
  13. 捷联惯导系统学习6.13(状态估计的误差分配与可观测度分析 )
  14. hugo搭建个人博客
  15. “百度快照劫持”到底是什么意思?
  16. ios模拟器装ipa包_用iOS模拟器安装App的方法
  17. 2021年5月30日 星期日 晴
  18. 升级鸿蒙系统手机网络信号变差了,这是为什么?
  19. tomcat启动报错,找不到对应的 queue,从而引发内存泄漏
  20. 基于单片机心率监测的LED灯辅助睡眠系统设备-毕业设计

热门文章

  1. Kafka-Monitor
  2. C#简单实现读取txt文本文件并分页存储到数组
  3. C++读取配置文件的写法
  4. 【C#】【Thread】上下文同步域SynchronizationAttribute
  5. Windows Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策
  6. ios url缓存策略——NSURLCache、 NSURLRequest
  7. VC++实现获取DNS服务器
  8. c语言 位域 sizeof,含位域结构体的sizeof
  9. java开发怎么打补丁_[Java教程]【NC】出补丁与打补丁
  10. ?类型 ,?类型(值)