多柱(m柱)汉诺塔问题 解题报告【DP】
来源:互联网 发布:网络是什么时候发明的 编辑:程序博客网 时间:2024/06/07 01:22
今天校内赛考了一下多柱汉诺塔问题,其中有
我们回忆一下只有三根柱子的情况:
先把
如果我们用
这样一个递推式,不写出它的通项公式是
我们再考虑四根柱子的情况。
我们按照同样的思路,考虑到底是先留几个盘子,先移几个盘子。我们设留下
同样的,如果定义
关于初值,无疑
代码如下:
#include<cstdio>#include<cstring>#include<algorithm>#define NAME "hanoi"using namespace std;const int N=63;int n,m;long long dp[N+5][N+5];int main(){ freopen(NAME".in","r",stdin); freopen(NAME".out","w",stdout); scanf("%d%d",&n,&m); memset(dp,0x3f,sizeof(dp)); for(int i=1;i<=N+1;i++)dp[1][i]=1,dp[i][1]=0,dp[0][i]=0,dp[i][0]=0,dp[2][i]=3; for(int i=2;i<=N+1;i++)dp[i][2]=0; for(int i=1;i<=N+1;i++)dp[i][3]=2*dp[i-1][3]+1; for(int i=3;i<=n;i++) for(int j=4;j<=m;j++) for(int r=1;r<=i;r++) dp[i][j]=min(dp[i][j],2*dp[i-r][j]+dp[r][j-1]); printf("%lld",dp[n][m]); return 0;}
阅读全文
0 0
- 多柱(m柱)汉诺塔问题 解题报告【DP】
- 2017.11.3 N盘M柱汉诺塔问题通解 DP 解题报告
- 图的m着色问题 解题报告
- codevs 1620 轮船问题 DP 解题报告
- HDU4521解题报告(DP解决)
- 【解题报告】uva10192_Vacation(假期, dp, LCS)
- 动态规划(dp)入门解题报告
- 整数划分解题报告(DP方法)
- NOIP2011 选择客栈 解题报告(DP)
- NOIP2015 子串 解题报告(DP)
- 【DP】2479解题报告
- HDU1864解题报告-dp
- POJ-3087 Shuffle'm Up 解题报告(陈小宾)
- M - Toy Storage解题报告(来自网络)
- hdu 1025 dp问题 学习笔记兼解题报告
- HDU4089概率dp解题报告
- hdu 1024 dp 解题报告
- 解题报告:HDU_3944 DP? 数论
- Java
- 字符在字符串中出现的次数和位置
- 2017.11.3 关于C语言程序设计现代方法第9章第8题
- Spring MVC的异步模式
- 20171103
- 多柱(m柱)汉诺塔问题 解题报告【DP】
- 1110. Complete Binary Tree (25)
- mtd_utils交叉编译
- 阿里云前端周刊
- C++11新特性学习笔记—使用花括号就地初始化
- Web的现状:网页性能提升指南
- MySQL之自定义函数
- Fragment嵌套Fragment和Viewpager
- 把自己卖了!!!