机器人塔(DFS)

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 只能站在 AA 或 BB 的肩上。

B 只能站在 AB 或 BA 的肩上。

你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以组成多少种花样的塔。输入一行两个整数 M 和 N,空格分开(0

例如:

用户输入:

1 2

程序应该输出:

3

再例如:

用户输入:

3 3

程序应该输出:

4

思路:

我们输入的A,B的值先确定塔的层数,因为题目说了保证人数的合理性,无论A,B给多少人,能堆出来的塔的层数一定是唯一确定的。我们先从最后一层开始把最后一层的所有可能遍历出来,然后在用递推的方式一层一层的递归。c[r+1][l]==c[r+1][l+1]这个是当下面的字母相等时当前的这个位置一定为a,反之就是b。

程序:

a=list(map(int,input().split()))

s=sum(a)

ab=[1,2]

for i in range(2,1000):

if s==((i+1)*i)//2:

o=i

break

try:

c=[[0 for i1 in range(o+1)]for i in range(o+1)]

con=0

def ck(i,r,l):

if a[i]-1>=0:

c[r][l]=ab[i]

a[i]-=1

if l>=r:

dfs(r-1,0)

else:

dfs(r,l+1)

c[r][l]=0

a[i]+=1

def dfs(r,l):

global con

if r==-1:

con+=1

return

elif r==o-1:

for i in range(2):

ck(i,r,l)

elif c[r+1][l]==c[r+1][l+1]:

ck(0,r,l)

elif c[r+1][l]!=c[r+1][l+1]:

ck(1,r,l)

dfs(o-1,0)

print(con)

except:

print(0)

禁止转载。仅用于自己学习。对程序错误不负责。

机器人编程java面试题,7届国赛java试题 4: 机器人塔相关推荐

  1. 蓝桥杯第七届国赛JAVA真题----机器人塔

    机器人塔 X星球的机器人表演拉拉队有两种服装,A和B. 他们这次表演的是搭机器人塔. 类似: 队内的组塔规则是: A 只能站在 AA 或 BB 的肩上.     B 只能站在 AB 或 BA 的肩上. ...

  2. 标题 穿越雷区 java_6届国赛java试题 4: 穿越雷区

    穿越雷区(BFS) X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废.某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路 ...

  3. 焦作机器人编程比赛_第二十届全国中小学生电脑制作活动“机器人竞赛”焦作选拔赛成功举办...

    (焦作市教育局党组成员.副局长井元锋发表重要讲话) (焦作市第一中学校长吴庆杰致欢迎词) (领导们参观机器人竞赛现场) (领导们参观创意编程比赛现场) 炫酷挑战赛,点燃科技激情 确保竞赛的公正公平.特 ...

  4. 蓝桥杯第七届国赛JAVA真题----平方末尾

    平方末尾 能够表示为某个整数的平方的数字称为"平方数" 比如,25,64 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数. 因为平方数的末位只可能是:[0, 1, ...

  5. 蓝桥杯第六届国赛JAVA真题----切开字符串

    标题:切开字符串 Pear有一个字符串,不过他希望把它切成两段. 这是一个长度为N(<=10^5)的字符串. Pear希望选择一个位置,把字符串不重复不遗漏地切成两段,长度分别是t和N-t(这两 ...

  6. 蓝桥杯第六届国赛JAVA真题----表格计算

    标题:表格计算 某次无聊中, atm 发现了一个很老的程序.这个程序的功能类似于 Excel ,它对一个表格进行操作. 不妨设表格有 n 行,每行有 m 个格子. 每个格子的内容可以是一个正整数,也可 ...

  7. 蓝桥杯第六届国赛JAVA真题----奇怪的数列

    标题:奇怪的数列 从X星截获一份电码,是一些数字,如下: 13 1113 3113 132113 1113122113 .... YY博士经彻夜研究,发现了规律: 第一行的数字随便是什么,以后每一行都 ...

  8. 蓝桥杯第六届国赛JAVA真题----密文搜索

    标题:密文搜索 福尔摩斯从X星收到一份资料,全部是小写字母组成. 他的助手提供了另一份资料:许多长度为8的密码列表. 福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的. 请你编写一个程序,从第一 ...

  9. 11届国赛python试题 J: 蓝跳跳

    蓝跳跳 [问题描述] 小蓝制作了一个机器人,取名为蓝跳跳,因为这个机器人走路的时候基本靠跳跃. 蓝跳跳可以跳着走,也可以掉头.蓝跳跳每步跳的距离都必须是整数,每步可以跳不超过 k 的长度.由于蓝跳跳的 ...

  10. 蓝桥杯第七届国赛JAVA真题----七星填数

    七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ...

最新文章

  1. 服务器响应的生成:HTTP响应报头——HttpServletResponse接口的应用
  2. 时序预测的必要条件是基于策略和环境相对稳定前提的
  3. 《JavaScript高效图形编程(修订版)》——第2章 DHTML基础 2.1创建DHTML sprite
  4. 软件测试中英文词汇汇总
  5. LINUX系统中动态链接库的创建与使用
  6. 开放下载!《AliOS Things快速开发指南》
  7. 信息学奥赛C++语言:判断正负
  8. 详解语音识别的技术原理
  9. (原創) 用OOP实作矩阵相乘 (C/C++)
  10. Java服务端获取微信小程序openid(简单实现,搞懂原理)
  11. Spring Boot 接入 Dubbo 指导文档
  12. python都被我用来爬美女图片了
  13. c盘找不到appdata
  14. 【单片机笔记】STM8S003F3使用内部基准电压测量供电电压
  15. 基于51单片机的扫地小车,扫地机器人设计。 有原理图,程序代码,原文
  16. linux系统接显示器 扩展模式怎么设置,Ubuntu10.04双显示器扩展方式 接显示器分辨率低的解决...
  17. net:ERR_UPLOAD_FILE_CHANGED in Chrome
  18. 北京办理居住证的全流程
  19. 北上广深有哪些比较知名的芯片设计企业
  20. 现代商业杂志现代商业杂志社现代商业编辑部2022年第16期目录

热门文章

  1. 体验WebEx网络会议
  2. 3月3日 单灭点、双灭点、单应矩阵求解相机姿态,世界坐标-相机坐标-图像坐标-像素坐标四个坐标系的变换关系,通过Vanishing Points计算焦距和像心
  3. 2.4~5 x86计算机的组成
  4. 数据挖掘中最易犯的10个错误,请绕行!
  5. 最优化方法:拉格朗日乘数法(转)
  6. 未来:互联网+数字经济,智慧零售到底智慧在哪儿?
  7. MySQL设置字符编码
  8. java使用poi读取word(简单,简约,直观)
  9. 如果想成为数据科学家,请学习这3种语言
  10. javaScript数据类型转换—显式转换(二)