SSL 1596矩陣乘積

2021-10-11 21:30:13 字數 1636 閱讀 2172

n表示矩陣的個數(<=100)

n+1個數,表示矩陣(<=100)

最小的乘法次數

55 10 4 6 10 2

這道題有3種做法:

法1和法2:設f[i][j]為第i~j-1個矩陣的最小乘次數

f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+jz[i]*jz[k+1]*jz[j+1]);

法1:先列舉長度,再列舉起點

法2:先列舉左邊界,再列舉右邊界

法3:設f[i][j]為第i~i+j-1個矩陣的最優值

f[i][j]=min(f[i][j],f[i][k]+f[k+i][j-k]+jz[i]*jz[k+i]*jz[j+i]);(1<=i<=n,1<=j<=n-i+1)

列舉長度,再列舉起點

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

long

long n,jz[

200]

,f[200][

200]

;void

input()

voiddp(

)return;}

intmain()

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

long

long n,jz[

200]

,f[200][

200]

;void

input()

voiddp(

)}}printf

("%d"

,f[1

][n]);

return;}

intmain()

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

long

long n,jz[

200]

,f[200][

200]

;void

input()

voiddp(

)}}printf

("%d"

,f[1

][n]);

return;}

intmain()

1127 矩陣乘積

description 計算兩個矩陣a和b的乘積。input 第一行三個正整數m p和n,0 m,n,p 10,表示矩陣a是m行p列,矩陣b是p行n列 接下來的m行是矩陣a的內容,每行p個整數,用空格隔開 最後的p行是矩陣b的內容,每行n個整數,用空格隔開。output 輸出乘積矩陣 輸出佔m行,每...

矩陣連乘積

m times n矩陣a與n times p矩陣b相乘需消耗o mnp 的時間。我們把mnp作為兩個矩陣用來相乘所需時間的測量值。在多個矩陣連乘的情況下,不同矩陣之間的計算順序不同結果雖然相同,但總共所需要的乘法數量不同。例子 a 2561 43 bigl begin 2 5 6 1 4 3 end...

計算矩陣連乘積

描述 在科學計算中經常要計算矩陣的乘積。矩陣a和b可乘的條件是矩陣a的列數等於矩陣b的行數。若a是乙個p q的矩陣,b是乙個q r的矩陣,則其乘積c ab是乙個p r的矩陣。計算c ab總共需要p q r次乘法。現在的問題是,給定n個矩陣。其中ai與ai 1是可乘的,i 1,2,n 1。要求計算出這...