【问题描述】
给定有n个连乘矩阵的维数,要求计算其采用最优计算次序时所用的乘法次数,即所要求计算的乘法次数最少。例如,给定三个连乘矩阵{A1,A2,A3}的维数分别是10*100,100*5和5*50,采用(A1A2)A3,乘法次数为10*100*5+10*5*50=7500次,而采用A1(A2A3),乘法次数为100*5*50+10*100*50=75000次乘法,显然,最好的次序是(A1A2...
分类:
编程语言 时间:
2014-12-14 18:40:36
阅读次数:
277
摘要整理了矩阵链乘法的动态规划思路。题目给定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
对于矩阵连乘机问题就不概述了,主要是找出最佳的结合方式使得整个式子的运算次数最少。
对于这个问题之所以用动态规划的原因点如下:
第一:由于矩阵连乘机本身可以划分为若干个子矩阵链连乘机,而且若干个子矩阵链的最优解组合起来就是原矩阵链的最优解。
第二:对于原矩阵链的不同划分中个子问题是存在重叠子问题。
所以当此问题用动...
分类:
其他好文 时间:
2014-11-21 14:29:41
阅读次数:
708
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