矩陣鏈乘問題

2021-10-19 19:54:16 字數 793 閱讀 6679

輸入:

共兩行第一行 n ( 1<=n<=100 ),代表矩陣個數。

第二行有 n+1 個數,分別為 a1 、 a2 ...... an+1 ( 1<=ak<=2000 ), ak 和 ak+1 代表第 k 個矩陣是個 ak x ak+1 形的。

輸出:共兩行

第一行 m ,為最優代價。注:測試用例中 m 值保證小於 2^31

第二行為最優順序。如 (a1((a2a3)a4)) ,最外層也加括號。

注意:測試用例已經保證了輸出結果唯一,所以沒有aaa的情況.

測試輸入

期待的輸出

時間限制

記憶體限制

額外程序

測試用例 1

以文字方式顯示

6↵30 35 15 5 10 20 25↵

以文字方式顯示

15125↵

((a1(a2a3))((a4a5)a6))↵

1秒64m

0

#include#include#define n 105 

using namespace std;

int v[n][n]; //v[i][i]儲存矩陣鏈從i到j的最小乘法次數

int c[n][n]; //c[i][j]儲存矩陣鏈從i到j的最佳分割位置

int a[n]; //矩陣鏈

int n; //矩陣個數

void minproduct() //自底向上更新最小乘法次數和斷點

else //特判

return 0;

}

矩陣鏈乘問題

問題描述 給定n個矩陣的鏈 a2,an 矩陣 a i 的規模為 p i pi 1 1 i n 求完全括號化的方案,使得計算乘積 a 1,a2 an 所需標量乘法的次數最少。遞推式 m i,j if i jif i include include include using namespace std...

最優矩陣鏈乘

問題描述 乙個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...