假设你必须做A*B*C*D*E的运算,在这里A,B,C,D,E都是矩阵(matrix).由于矩阵相乘具有连接性(associative),所以相乘的顺序可以是任意的.然而所需要的基本乘法数却与不尽相同. 例如:A是个50*10的矩阵,B是个10*20的矩阵,C是个20*5的矩阵.那么就有2种不同的表示式来求出A*B*C.分别是(A*B)*C和A*(B*C).而其所需用到的基本乘法数前者为15000次,后者为3500次. 给你某一种矩阵相乘的表示式,你的任务是写一个程序算出需要多少个基本乘法. I…
题目描述: 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.如果乘法无法进行,输出error. Sample Input 9 A 50 10 B 10 20 C 20 5 D 30 35 E 35 15 F 15 5 G 5 10 H 10 20 I 20 25 A B C (AA) (AB) (AC) (A(BC)) ((AB)C) (((((DE)F)G)H)I) (D(E(F(G(HI))))) ((D(EF))((GH)I)) Sample Output 0 0 0 error…
传送门:http://oj.cnuschool.org.cn/oj/home/solution.htm?solutionID=35454 20603矩阵链乘 难度级别:B: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入n个矩阵的维度和一些矩阵链乘的表达式,输出乘法的次数.如果乘法无法进行,输出error.假定A是m*n矩阵,B是n*p矩阵,则乘法的次数为m*n*p.如果矩阵A的列数不等于矩阵B的行数,则这两个矩阵无法进行乘法运算.例…
题目链接. 题目大意: 给定一个n,和两个序列a[i], p[i]. a[i] 表示需要购买 i品质 的数量,p[i] i 等级的价格. 1.每个品质都会有不同的价格,价格依据品质上升而上升 2.买一次 i 品质,都要加上10个 i 品质 价格的手续费. 3.可一用高品质的代替低品质. 求最少的花费. 分析: 这题就简单地矩阵链乘法(<算法导论>第15章,动态规划). 用 dp[i][j] 表示购买 i 品质到 j 的最少的花费. dp[i][j] = min{dp[i][k]+dp[k+1]…
动态规划--矩阵链乘法 1.矩阵乘法       Note:只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义.一个m×r的矩阵A左乘一个r×n的矩阵B,会得到一个m×n的矩阵C. #include <iostream> using namespace std; #define A_ROWS 3 #define A_COLUMNS 2 #define B_ROWS 2 #define B_COLUMNS 3 void matrix_multiply(int A[A_ROWS][A_COLUM…
http://codevs.cn/problem/3546/ 题目 给定有n个要相乘的矩阵构成的序列(链)<A1,A2,A3,.......,An>,要计算乘积A1A2.....An.一组矩阵是加全部括号的.矩阵链加括号对运算的性能有很大影响. 仅当两个矩阵A和B相容(即A的列数等于B的行数),才可以进行相乘运算.如果A是一个p×q矩阵,B是q×r矩阵,结果C是p×r的矩阵.计算C的时间由乘法运算次数决定的,次数为p×q×r. 矩阵链乘法问题可表述为:给定n个矩阵构成的一个链<A1,A2…
https://vjudge.net/problem/UVA-10003 题意: 有一根长度为L的棍子,还有n个切割点的位置.你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小.每次切割的费用等于被切割的木棍长度.例如,L=10,切割点为2,4,7.如果按照2,4,7的顺序,费用为10+8+6=4,如果按照4,2,7的顺序,费用为10+4+6=0. 思路: 这道题目和最优矩阵链乘是一样的,方法是按照区间大小递增的顺序递推,因为长区间的值依赖于短区间的值. 设d(i,j)为切割…
Matrix-chain product. The following are some instances. a)       <3, 5, 2, 1,10> b)       <2, 7, 3, 6, 10> c)       <10, 3, 15, 12, 7, 2> d)       <7, 2, 4, 15, 20, 5> 矩阵链乘积: 应用动态规划方法: 1.刻画一个最优解的结构特征 2.递归地定义最优解的值 3.计算最优解的值,采用自底向上的方…
题目链接:https://vjudge.net/problem/POJ-1651 Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11239   Accepted: 6980 Description The multiplication puzzle is played with a row of cards, each containing a single positive…
这是<算法导论>动态规划中的一个问题.问题简述如下:我们在求解矩阵相乘时通常会有一个最优括号方案来对矩阵进行顺序相乘,这样会减少大量的计算时间. 我们知道矩阵A.B相乘,只能是当矩阵A的列数等于矩阵B的行数时才能进行相乘,且假设A·B = C,A为p×q规模的矩阵,B为q×r的矩阵,则乘积C的规模为p×r的矩阵.计算A·B所需的时间由乘法次数决定,即pqr. 例如:有三个矩阵的规模分别为:A = 10×100,B = 100×5,C = 5×50.如果按顺序(AB)C计算,则需要10×100×…