- 博客(0)
- 资源 (4)
- 收藏
- 关注
矩阵连乘的重叠子问题
Description
在讲动态规划课时,我们知道可用动态规划算法求解的问题应具备的一个基本要素是子问题的重叠性质,矩阵连乘问题能用动态规划求解正是因为它具有重叠子问题。因此在解矩阵连乘问题的自顶向下的递归算法中,存在着大量的重叠子问题计算。例如要计算4个矩阵A1A2A3A4最小连乘次数,要分别计算A1(A2A3A4)、(A1A2)(A3A4)和(A1A2A3)A4三种情况下的最小连乘次数,而计算A1(A2A3A4)的最小连乘次数要计算其子问题A2A3A4的最小连乘次数,A2A3A4最小连乘次数的计算有二种情况(A2A3)A4和A2(A3A4),它分别包括求A2A3和A3A4两个子问题。同理,计算(A1A2)(A3A4)包含A1A2和A3A4两个子问题;计算(A1A2A3)A4包含计算A1A2A3、A1A2和A2A3这三个子问题。故在解A1A2A3A4的最小连乘次数时,其子问题的计算和重叠次数分别是: A1A2计算2次,重叠1次;A2A3计算2次,重叠1次;A3A4计算2次,重叠1次;A1A2A3只计算1次;A2A3A4只计算1次;A1A2A3A4只计算1次。因此,4个矩阵A1A2A3A4连乘的重叠子问题分别为:A1A2、A2A3和A3A4的计算各重叠一次。现在你的编程任务是:对于n个矩阵连乘,求其重叠子问题的计算次数。
Input
第一行是1个整数n(2≤n≤300),表示有n个矩阵连乘,接下来一行有n+1个数,表示是n个矩阵的行及第n个矩阵的列,它们之间用空格隔开.
Output
输出重叠子问题计算次数和对应的子问题,中间以空格隔开,各子问题的重叠次数输出分别以A1、A2、… An打头的次序依次输出,格式如样例所示。如没有重叠子问题输出NO
Sample Input
4
30 35 15 5 10
Sample Output
1 A1A2
1 A2A3
1 A3A4
2011-04-18
经典ACM算法合集经典ACM算法合集
实验一 统计数字问题
实验二 最大间隙问题
实验三 众数问题
实验四 半数集问题
实验五 集合划分问题
实验六 最少硬币问题
实验七 编辑距离问题
实验八 程序存储问题
实验九 最优服务次序问题
实验十 汽车加油问题
实验十一 工作分配问题
实验十二 0-1背包问题
实验十三 最小重量机器设计问题
实验十四 最小权顶点覆盖问题
实验十五 集合相等问题
实验十六 战车问题
2011-03-21
数据结构课程设计接上次上传余下的部分,包括图结构、查找、排序‘
数据结构 上次只有上传了前5个实验,这次上传的是余下的3个实验,文档下载下来直接可以使用,里面有源程序代码。欢迎下载
2010-12-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人