演算法提高 矩陣乘法 最優矩陣鏈乘

2021-09-11 02:30:16 字數 655 閱讀 3925

題目鏈結

有n個矩陣,大小分別為a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],現要將它們依次相乘,只能使用結合率,求最少需要多少次運算。

兩個大小分別為p*q和q*r的矩陣相乘時的運算次數計為p*q*r。

狀態轉移方程:

普通遞推:按照j-i遞增的順序遞推,時間複雜度o(n^3).

#include #include using namespace std;

const int n = 1000+5;

long long a[n],d[n][n];

int main(int argc, char** ar**)

} cout<< d[1][n] << '\n';

return 0;

}

輸出格式

輸出乙個整數,表示最少的運算次數。

樣例輸入

31 10 5 20

樣例輸出

資料規模和約定

1<=n<=1000, 1<=ai<=10000。

最優矩陣鏈乘

問題描述 乙個n m矩陣由n行m列共n m個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個n m的矩陣乘以乙個m p的矩陣等於乙個n p的矩陣,運算量為nmp。矩陣乘法滿足結合律,a b c可以表示成 a b c或者是a b c 兩者的運算量卻不同。例如當a 2 3 b 3 4...

最優矩陣鏈乘

題目大意 乙個n m矩陣由n行m列共n m個數排列而成。兩個矩陣a和b可以相乘當且僅當a的列數等於b的行數。乙個n m的矩陣乘以乙個m p的矩陣等於乙個n p的矩陣,運算量為nmp。矩陣乘法滿足結合律,a b c可以表示成 a b c或者是a b c 兩者的運算量卻不同。例如當a 2 3 b 3 4...

最優矩陣鏈乘

我們都學過矩陣的乘法。矩陣的乘法不滿足分配率,但是滿足結合律,因此矩陣 a b c 和 a b c 的結果是一樣的,但是中間的運算量可能是不同的。比如三個矩陣 a 2 times3 b 3 times4 c 4 times5 則 a times b times c 需要運算 2 times3 tim...