上一篇讲了贪心算法来解活动选择问题(【算法导论】贪心算法之活动选择问题),发现后面有一道练习16.1-1是要用动态规划来解活动选择问题。其实跟之前的矩阵链乘法有些相似,也是考虑分割的活动是哪一个,并用二维数据来记录Sij---最大兼容集合个数,和用另一个二维数据来记录Sij取得最大时的活动分割点k。然后就是考虑边界问题,和使用递归来求动态规划的最优解。
#i...
分类:
编程语言 时间:
2015-01-28 22:36:17
阅读次数:
408
摘要整理了矩阵链乘法的动态规划思路。题目给定n个要相乘的矩阵构成的序列,其中 i=1, 2, ..., n,矩阵Ai的维数为pi-1*pi。计算乘积 A1A2...An的最小代价的矩阵相乘循序。补充:矩阵乘法满足结合律,例如,乘积 A1A2A3A4共有五种不同加括号结合形式。不同的结合形式极大的影响...
分类:
其他好文 时间:
2014-12-04 11:36:01
阅读次数:
307
这个转移方程不好想,尤其是一段值的解是中间,不明觉厉。dp[i][j] 用i个邮局,覆盖前j个村庄的最小值。
还有就是区间dp的平行四边形优化,这个题的转移方程并不是“区间DP”,所以枚举状态要逆着(很花时间),且用一个邮局覆盖都是从0断开了相当于没有断开。
类比于石子归并,矩阵链乘等标准区间DP,其所需状态之前就已经获得,不用倒推
#include
#include
#incl...
分类:
其他好文 时间:
2014-11-28 21:29:24
阅读次数:
252
Multiplication Puzzle
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 6542
Accepted: 3983
Description
The multiplication puzzle is played with a row of car...
分类:
其他好文 时间:
2014-11-16 17:26:48
阅读次数:
188
区间DP
区间DP
注意点例题:
1.最优矩阵链乘2.UVA 10003 Cutting Sticks
注意点
区间dp与一般的dp有所区别,若使用递推的方法,需要注意根据dp[i][j]
中j-i递增的顺序来递推。
例题:
1.最优矩阵链乘
#include #include ...
分类:
其他好文 时间:
2014-11-10 13:50:58
阅读次数:
172
1.动态规划
动态规划的方法与方法类似,英文“dynamic programming”,这里的programming不是程序的意思,而是一种表格法。都是通过组合子问题的解来解决原问题,分治方法将划分为互不相交的子问题,递归的求解子问题,再将它们的解组合起来求出原问题的解。与之相反动态规划应用于子问题的重叠情况,即不同的子问题具有公共的子问题,子问题的求解是递归进行 ...
分类:
其他好文 时间:
2014-11-06 23:42:25
阅读次数:
562
一、钢条切割二、矩阵链乘法三、最优三角剖分四、连续子数组之和五、单词分割总结:写递归方程的时候,往往不直接是所要求的最优解,所需最优解可能还需要根据递归方程解出来的结果,再次计算。例如,连续子数组之和,它并不是直接求解子数组之和最大,并不是直接根据它来列出递归方程。
分类:
其他好文 时间:
2014-11-06 21:38:15
阅读次数:
122
问题提出: 对于如下矩阵: 其中各矩阵A[i]下标为 计算其乘积的结果,以及我们需要计算其最小标量乘法次数。 问题分析: 首先我们需要明确的是何为标量:标量即为没有方向的量,而有方向的量即为矢量。(严谨的定义自己百度去) 那么标量乘法就变成了最基本的数字相乘。 其次对于两个矩阵相乘,需满足下示公式所...
分类:
其他好文 时间:
2014-11-06 14:47:47
阅读次数:
382