题目分析:对于 i 个盘 , 须要移动多少步,取决于最大的盘子在哪个杆上。在C杆上,则最大的盘不须要移动,由于初始状态一定是满足盘由下到上盘子依次变小的,仅仅须要移动i - 1个盘。假设在A杆上,则首先须要将最大盘移到C杆上。在此之前当然须要将其它i - 1个盘都移到B上,然后,将最大的盘移动到C上。然后移动i - 1个在B上的盘。假设最大的盘在B杆上,则相似于在A杆上的情况。

假设x个盘都在1个杆上 , 要移动到另外一个杆上,须要pow(2 。 x) - 1步。

设dp[ i ]  为要移动 i 个盘子的期望步数。显然 dp[ 1 ] = 2/3 = 1/3 * 0  + 1/3  * 1 + 1/3 * 1;

由上面的分析可知。dp[ i ] = 1/3 * dp[ i - 1] + 1/3 * (dp[ i - 1] + 1 + pow(2 , i - 1) - 1)  + 1/3 * (dp[ i - 1] + 1 + pow(2 , i - 1) - 1) 

  = 1/3 * dp[ i - 1] +2/3 * (dp[ i - 1] + pow(2 , i - 1) )

AC_CODE

const int Max_N = 32;
double dp[Max_N];int main()
{int t , n;cin >> t;while(t--){cin >> n;dp[1] = 2.0/3;for(int i = 2; i <= n;i++){dp[i] = 1.0/3 * dp[i -1] + 2.0/3 *(dp[i - 1] + pow(2.0 , i - 1));}printf("%.2lf\n",dp[n]);}return 0;
}

转载于:https://www.cnblogs.com/ldxsuanfa/p/10623673.html

BNUOJ 34978 汉诺塔 (概率dp)相关推荐

  1. BNUOJ 34978 汉诺塔

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=34978 比赛还剩不到2分钟的时候想到了解法,写好代码提交时卡了一下,出AC结果时比赛已经结 ...

  2. 牛客 - 汉诺塔(思维+dp)

    题目链接:点击查看 题目大意:给出 n 个木板,尺寸分别为 Xi * Yi ,现在要求将其分为最少的组,每一个组中都可以通过重新排序使得每个木板都严格递增,此处递增的意思为严格满足 Xi > X ...

  3. h0043. 奇怪的汉诺塔

    汉诺塔问题,条件如下: 1.这里有A.B.C和D四座塔. 2.这里有n个圆盘,n的数量是恒定的. 3.每个圆盘的尺寸都不相同. 4.所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大. ...

  4. BZOJ 1019: [SHOI2008]汉诺塔( dp )

    dp(x, y)表示第x根柱子上y个盘子移开后到哪根柱子以及花费步数..然后根据汉诺塔原理去转移... ------------------------------------------------ ...

  5. $bzoj1019-SHOI2008$ 汉诺塔 $dp$

    题面描述 汉诺塔由三根柱子(分别用\(A\ B\ C\)表示)和\(n\)个大小互不相同的空心盘子组成.一开始\(n\)个盘子都摞在柱子\(A\)上,大的在下面,小的在上面,形成了一个塔状的锥形体. ...

  6. 【DP】奇怪汉诺塔(ybtoj DP-1-2)

    奇怪汉诺塔 ybtoj DP-1-2 题目大意 求四根柱子的汉诺塔问题 输出 共12行 每行输出第一根柱子有i个圆盘的最小步数 解题思路 设aia_iai​表示三根柱子,第一根柱子有i个圆盘的步数 很 ...

  7. 算法练习day15——190403(简介、求n!、汉诺塔、打印字符串的子序列、打印字符串的全排列、母牛生小牛、最小路径和、累加和是否达到给定值)

    1. 简介 动态规划是为了优化暴力尝试的. 2. 求n! 2.1 一般思路 public static long getFactorial2(int n) {long result = 1L;for ...

  8. python面向过程实践汉诺塔_递归汉诺塔-和递归汉诺塔相关的内容-阿里云开发者社区...

    多柱汉诺塔最优算法设计探究 多柱汉诺塔最优算法设计探究 引言 汉诺塔算法一直是算法设计科目的最具代表性的研究问题,本文关注于如何设计多柱汉诺塔最优算法的探究.最简单的汉诺塔是三个柱子(A.B.C),因 ...

  9. 汉诺塔(3塔、4塔思路详记)

    时隔多年,忽然又回来了. 记录一个小小的汉诺塔2333 没想到3年过去,我写递推还要看题解才能想明白/(ㄒoㄒ)/~~ #include<iostream> #include<cst ...

  10. 汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI、汉诺塔VII

    汉诺塔II:(hdu1207) /先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上, 规则小的必需放在大的上面,每次搬一个,求最小步数.这个问题简单,DP: ...

最新文章

  1. php微信回复乱码,php版微信公众平台回复中文出现乱码问题的解决方法
  2. 【数理知识】《数值分析》李庆扬老师-目录
  3. 复现经典:《统计学习方法》第1章 统计学习方法概论
  4. 博客园-我的新的开始
  5. 汇编[bx+idata](8086)
  6. myeclipse的电商系统模板_电商市场分析怎么做?3分钟了解程序员必备分析软件...
  7. 拓端tecdat|如何用r语言制作交互可视化报告图表
  8. mysql 介于两个日期函数_帮忙看一上这个mysql函数,用来返回两个日期之间的年数...
  9. Linux挂载Linux网络共享文件夹
  10. IT桌面运维常识系列 -(Windows部署服务 - 01)
  11. 蛙跳算法优化VMD参数,惩罚系数,分解层数,matlab语言 ,最小包络熵为适应度函数。
  12. 宝塔面板是干什么的?有哪些典型的功能作用?
  13. python爬虫面试自我介绍范文_程序员求职面试自我介绍范文4篇
  14. 单招计算机专业常见面试题库,历年高职单招面试常见问题集锦
  15. 实现LZW字典压缩算法
  16. 模具设计分型的10大原则
  17. 关于触摸屏的一些硬件知识
  18. java 类一定要声明成public_关于使用public class 和 class声明类的区别
  19. 分布式数据库TiDB的部署
  20. Android系统Crash/ANR类型弹框

热门文章

  1. 京东笔试题:如何实现 MySQL 删除重复记录并且只保留一条?
  2. 终于找全啦!一二线城市知名互联网公司名单!对着找就对了...
  3. 数据库之互联网常用架构方案一览
  4. 为什么浏览器的用户代理字符串以 Mozilla 开头?
  5. Big day coming...
  6. shell基础之exit,break,continue
  7. 给定一个数跟数组,将小于等于该数的数组元素放在左边,将大于该数的数组元素放在右边...
  8. 文件写入一行 、读取一行的工具类案例
  9. NOIP2018普及T2暨洛谷P5016 龙虎斗
  10. Coursera机器学习week11 单元测试