题目描述
有若干个矩阵{Ai},元素都为整数且已知矩阵大小。
如果要计算所有矩阵的乘积A1 * A2 * A3 .. Am,最少要多少次整数乘法?
输入
第一行一个整数n(n <= 100),表示一共有n-1个矩阵。
第二行n个整数B1, B2, B3… Bn(Bi <= 100),第i个数Bi表示第i个矩阵的行数和第i-1个矩阵的列数。
等价地,可以认为第j个矩阵Aj(1 <= j <= n - 1)的行数为Bj,列数为Bj+1。
输出
一个整数,表示最少所需的乘法次数
样例输入
6
10 1 50 50 20 5
样例输出
3650
解题思路
矩阵A1(3行4列),矩阵A2(4行5列),A1*A2=A3(3行5列),A3中一共有十五个元素,计算每个元素都需要做4次乘法,因此计算矩阵A3一共要做3*4*5次乘法运算
下列四个矩阵M1(10*20)、M2(20*50)、M3(50*1)、M4(1*100)
M1(M2(M3M4)) 共需125000次乘法
(M1(M2M3))M4 共需2200次乘法
不同的相乘顺序,所需要的乘法次数是有差别的
现在假如要计算Ai*A2*A3*… Ak*…Aj的值,则肯定存在某个k值将这些矩阵分成两部分,使