动态规划问题我训练过一些题目,但是感觉自己掌握的还不是特别好!
下面以一道经典的动态规划题目说明动态规划算法的思想,文末会官方的给出对动态规划的文字叙述。先看题目:如下图(图片来自百度图片)是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大.思路分析:
这道题目如果使用贪婪算法不能保证找到真正的最大和。
在用动态规划考虑数塔问题时...
分类:
其他好文 时间:
2015-05-18 01:10:37
阅读次数:
1092
1. 汉诺塔算法 static long count; //移动的次数 /** * 汉诺塔算法,将盘子从a移动到c * @param n 盘子数目 * @param a 柱子标识 * @param b 柱子标识 * @param c 柱...
分类:
编程语言 时间:
2015-05-17 21:43:46
阅读次数:
112
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1834 Accepted Submission(s): 1279
Problem Description
n个盘子的汉诺塔问题的最少移动次数是2^n-1,即在移动过...
分类:
其他好文 时间:
2015-05-17 15:18:50
阅读次数:
73
汉诺塔这个问题很经典,不清楚题目的同学可以去百度一下,在这小子就不多说了,进入正题; 让我们打开表格,看看这座塔: 这塔看起来不咋地对不对?不过,我们的目标是把它原封不动的搬到c列上,可以借助b列。让我们从最简单的做起:假设只有两层,从下往上分别是1,2,这时候你会说这题目简直就是在侮辱...
分类:
其他好文 时间:
2015-05-17 09:19:38
阅读次数:
112
汉诺塔II:(hdu1207)/先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,如今要搬到目标C上,规则小的必需放在大的上面,每次搬一个,求最小步数。这个问题简单,DP:a[n]=a[n-1]+1+a[n-1],先把上面的n-1个放在B上,把最大的放在目标C上,再把N-1个...
分类:
其他好文 时间:
2015-05-16 21:48:27
阅读次数:
127
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3291 Accepted Submission(s): 1909
Problem Description
用1,2,...,n表示n个盘子,称为1号盘,2号盘,.....
分类:
其他好文 时间:
2015-05-16 14:57:08
阅读次数:
148
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4739 Accepted Submission(s): 3468
Problem Description
还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(...
分类:
其他好文 时间:
2015-05-15 15:38:44
阅读次数:
110
C语言之算法初步(汉诺塔--递归算法) 个人觉得汉诺塔这个递归算法比电子老鼠的难了一些,不过一旦理解了也还是可以的,其实网上也有很多代码,可以直接参考。记得大一开始时就做过汉诺塔的习题,但是那时代码写得很长很长,也是不理解递归的结果。现在想起来汉诺塔的算法就3个步骤:第一,把a上的n-1个盘通过c....
分类:
其他好文 时间:
2015-05-14 20:23:58
阅读次数:
147
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11567 Accepted Submission(s): 5255
Problem Description
约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板...
分类:
其他好文 时间:
2015-05-14 16:39:55
阅读次数:
124
问:求n层汉诺塔至少需要多少步完成。 #includeint f(int n);int main(){ int n; scanf("%d",&n); printf("%d层汉诺塔至少需要%d步\n",n,f(n)); return 0;}int f(int n){ if(n==1) retu...
分类:
其他好文 时间:
2015-05-11 19:38:20
阅读次数:
165