动态规划总结
Posted leeanna
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划总结相关的知识,希望对你有一定的参考价值。
理解:
我所理解的动态规划的思想,其实就是将一个大的、复杂的问题简单化,将大的问题分成若干个小的子问题,再将这些子问题一一解决。找出子问题之间的互相依赖关系,利用递归的思想,将它们的依赖关系给串联在一起,最后解决原来的这个复杂的问题。
动态规划实际上就是找出他们的关系,然后进行填表的操作。具体问题具体分析是填一维数组还是二维数组。
编程1:len[i] = max{len[i]+1|a[j]>a[i]} (其中len[i]表示从0开始到i处的最长单调递增子序列的个数,初始值默认设为1;a[i]表示我们输入的数列,且1<i<n,设n为最大的数组下标)
编程2:m[j]=min{ m[i]+cost[i,j] } (m[j]表示从1到 j 所需最少租金,cost[i,j]表示从 i 到 j 所需花费,且1<i<j<n,设n为最大的数组下标)
结对编程:
第三章的这三个实验对于我们来说是既难,又不难。为什么会这样说呢?其实刚拿到三角形这道题的时候我脑袋一懵,老师上课讲的那些我是听懂了,可是真正实践起来的时候并非我想象中那样容易,并没有办法做到信手拈来,这使我有些懊丧。
但是幸好的是,我们组有一位同学在周末写完了之前的4道题目,她有了一些思路,在经过我们三人的讨论逐渐成型。这个时候我才体会到合作的乐趣。
其实第一道题相对我们来说并没有太大的难度,甚至第二题也能轻松解决。一二题目相对来说的确不是太难,很容易就能用填表的方法解决。难的是第三题。
……又得说万幸了,我们组的某个同学在实验室,老师才给他们说完这个例子,所以她对第三题非常理解,并且通过讲解让我们明白。
以上是关于动态规划总结的主要内容,如果未能解决你的问题,请参考以下文章