Luogu P4285 [SHOI2008]汉诺塔

本文探讨了汉诺塔问题的一个变种——SHOI2008的汉诺塔题目,其中存在特定的操作优先级。通过介绍如何计算第x号柱子移i个盘子到最优柱子的最优解f[x][i],以及确定最佳目标柱子p[x][i],文章解释了两种不同情况的移动策略。作者提供了问题的解决方案,并分享了实现代码,欢迎读者支持。
摘要由CSDN通过智能技术生成

大家知道简单的汉诺塔怎么做吗?

有个公式对吧

就是 2 n − 1 2^n-1 2n1

操作就是将第一个柱子除底盘外的移到第二个柱子,然后把底盘移到第三个柱子,然后把第二个柱子的盘子移动到第三个

但基本的汉诺塔问题的操作是没有限制的,就是你想移哪儿移哪儿,但是这题不一样,这题强制了一个操作优先级,所以要用不同的方法去做。

f[x][i]: 第x号柱子移i个盘子到最优柱子的最优解
p[x][i]:第x号柱子移i个盘子到p[x][i]号柱子是最优解

那么就有两种情况,第一种就是普通的汉诺塔移动
也就是上面所讲的:

f [ a ] [ i ] = f [ a ] [ i − 1 ] + 1 + f [ b ] [ i − 1 ] ; f[a][i]=f[a][i-1]+1+f[b][i-1]; f[a][i]=f[a][i1]+1+f[b][i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值