BNU 34978 汉诺塔 求期望步数
来源:互联网 发布:四维星软件免费下载 编辑:程序博客网 时间:2024/05/29 11:50
题目链接:点击打开链接
我们用dp[i]表示 随机i个盘子时,恢复原位需要的步数的期望
f[i]表示i个盘子下普通的汉诺塔玩法的步数
既然是随机,那么我们就认为是在上一次随机的情况下,
把第n个放到任意一根柱子的底部
那么若随机放到了第3个柱子,则步数就是dp[n-1]
若放到了第1根柱子,则先把前面的n-1个盘子移动到第2根柱子上,花费是dp[n-1]
然后再把n盘子移动到第三根柱子,再把其他盘子移动到第三根柱子, 花费是 1+f[n-1]
就是这样_(:зゝ∠)_
#include <cstdio>#include <iostream>#include <algorithm>#include <string.h>#include <vector>#include <cmath>using namespace std;#define N 100#define ll long longll n;double f[N];double dp[N];int main() { f[1] = 1.0; for(int i = 2; i < N; i++) f[i] = f[i-1]*2.0+1.0; dp[1] = 0.666666666666666; for(int i = 2; i < N; i++) dp[i] = dp[i-1]/3.0 + 2.0 * (dp[i-1] + f[i-1] +1.0) / 3.0; int T, j;scanf("%d",&T); while(T--) { scanf("%d",&j); printf("%.2f\n", dp[j]); } return 0;}
0 1
- BNU 34978 汉诺塔 求期望步数
- bnu 12639 Cards (dp求期望)
- 概率dp 投掷色子走一定步数 期望
- 求期望
- BNU 25586 Mega Inversions【树状数组求逆序数对和正序数对】
- POJ-3126 Prime Path(BFS 求最小步数)
- POJ 3126 Prime Path (BFS求最少步数)
- hdu3959-求期望
- 概率dp 求期望
- hdu 4465 求期望
- HDU5139 Card 求期望
- hdu5245 求期望
- hdoj5570balls【求期望】
- Lightoj 1027(求期望)
- Lightoj 1030(求期望)
- Lightoj 1038(求期望)
- Lightoj 1248(求期望)
- Lightoj 1284(求期望)
- Go_关于组合的一个案例
- 关于多继承的派生类中数据成员的偏移量
- C++中 auto自动变量,命名空间,using作用以及作用域
- js实现php函数默认参数的功能(另一种方法)
- Jobdu 题目1078:二叉树遍历
- BNU 34978 汉诺塔 求期望步数
- uva 10012(暴力求解)
- C#中使用OpenCV等库进行图像处理
- 数据库基本知识
- 定时调度Quartz框架学习小demo
- effective c++要点
- google搜索不稳定
- sgu 103(poj 1158) 最短路(含蓝紫灯的最短路)
- 自己总结的排序算法未完成