题目描述

求解 \(n\) 个盘子 \(4\) 座塔的 Hanoi 问题最少需要多少步

问题分析

考虑 \(3\) 座塔的 Hanoi 问题,记 \(f[i]\) 表示最少需要多少步, 则 \(f[i] = 2 * f[i - 1] + 1\) , 即把前 \(n - 1\) 个盘子从 \(A\) 移动到 \(B\), 然后把最下面的盘子移动到 \(C\), 最终把前面的 \(n - 1\) 个盘子移到 \(C\)

考虑把4个盘子的情况转移到三个的情况,则有 \[f[i] = \min_{1 \le i < n} \{2 * f[i] + d[n - i]\}\]

其中 \(f[1] = 1\).上式的意义是先把 \(i\) 个盘子在 \(4\) 她模式下移动到 \(B\) 柱,然后把 \(n-i\) 个盘子在 \(3\)塔模式下移到 \(D\) 柱。最后把 \(i\) 个盘子在 \(4\) 塔模式下移到 \(D\)柱,考虑所有可能的 \(I\) 取最小值,就是上述式子的意义。

推广

考虑 \(n\) 个盘子在 \(m\) 个塔下的最小值。式子与上述一样,增加一位表示第几种,复杂度 \(n^3\)

最新文章

  1. validate插件深入学习-04自定义验证方法
  2. 团队第二周:SRS文档
  3. Linux-TCP Queue的一些问题
  4. 你知不知道 Cookie正在泄露你的隐私!
  5. Objective-c归档的概念和用法
  6. web前端开发控件学习笔记之jqgrid+ztree+echarts
  7. php微信开发(1):缓存access_token的方法
  8. this的分析
  9. BZOJ3687: 简单题
  10. win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程——转载
  11. description方法的介绍及重写
  12. three.js 实现全景以及优化(2)
  13. RSA Encrypting/Decrypting、RSA+AES Encrypting/Decrypting
  14. K8s-Pod控制器
  15. pitch, yaw, roll
  16. Asp.net core 学习笔记 ( OData )
  17. 十问Android NFC手机上的卡模拟(转)
  18. 分布式文件系统之FastDFS
  19. Linux下jdk安装过程
  20. Restful Framework (二)

热门文章

  1. Kylin构建cube时状态一直处于pending
  2. Python线程,进程,携程,I/O同步,异步
  3. !!【通达信】求教:如何对A股的所有股票按照某个选股指标的某个参数排序? - 理想论坛 中国人气最旺的股票论坛
  4. Twitter OA prepare: even sum pairs
  5. 定时器事件QtimerEvent 随机数 qrand Qtimer定时器
  6. 安卓备份 To Do(待办事项)的数据库
  7. 查看mysql主外键信息
  8. 027-chown命令
  9. 每天一个Linux命令(1)ls命令
  10. thinkphp相关