汉诺塔II(hdu 1207)

博客探讨了经典的三柱汉诺塔问题及其公式f(n)=2^n-1,并延伸到四柱汉诺塔问题的解决策略。通过将问题拆分为三个步骤,详细解释了如何找到最小步数的解决方案,涉及递归思想和动态规划。最终,通过遍历所有可能情况,确定最小步数的最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门:hdu 1207

题意很简单,汉诺塔问题的扩展,四柱汉诺塔问题.

首先解决经典汉诺塔问题,递归做法详解

经典汉诺塔问题还有公式,f(n)=2^n-1。推导过程也很简单,易看出f(1)=1,f(2)=3,f(n)=f(n-1)*2+1,即要把n个盘子从a搬到c,相当于把

n-1个盘子从a搬到b,然后再把第n个盘子从a搬到c,在把n-1个盘子从b搬到c,两次搬动n-1个盘子步数一样只是借助的柱子不一样。

稍加推导即得出f(n)=2^n-1。

对于四柱汉诺塔问题,可以分为如下几步,和经典汉诺塔问题极为相似:

1.先把x个盘子从a借助b、c移到d柱上,需要步数为f(x)。

2.把剩余的n-x个盘子借助b柱从a移到c柱上(不能依靠d柱是因为d柱上盘子编号比剩余的n-x个小),这又变为经典汉诺塔问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值