在矩阵运算中,矩阵的乘法满足结合律,即 (A × B) × C = A × (B × C)
,但矩阵乘法不满足交换律,即 A × B ≠ B × A
。
假设给定 N
个矩阵,依次编号为 1
到 N
,第 i
个矩阵的维度为 p[i-1] × p[i]
。矩阵的乘法运算代价为矩阵的行数 × 列数 × 共同维度。例如,如果矩阵 A
的大小是 10 × 30
,矩阵 B
的大小是 30 × 5
,那么 A × B
的计算代价为 10 × 30 × 5 = 1500
。
我们的目标是找到一种最优的括号化方案,使得 N
个矩阵依次相乘的总计算代价最小。
N
(2 ≤ N ≤ 100
),表示矩阵的个数。N+1
个整数 p[0], p[1], ..., p[N]
,表示 N
个矩阵的维度。其中,第 i
个矩阵的大小为 p[i-1] × p[i]
。4 10 30 5 60 20
8500
3 10 30 5 60
4500
2 ≤ N ≤ 100
1 ≤ p[i] ≤ 1000