File tree 1 file changed +35
-0
lines changed
1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < limits.h>
3
+ using namespace std ;
4
+ int MatrixChainMultiplication (int p[], int n){
5
+ int m[n][n];
6
+ int i, j, k, L, q;
7
+ for (i=1 ; i<n; i++)
8
+ m[i][i] = 0 ;
9
+ for (L=2 ; L<n; L++){
10
+ for (i=1 ; i<n-L+1 ; i++){
11
+ j = i+L-1 ;
12
+ m[i][j] = INT_MAX;
13
+ for (k=i; k<=j-1 ; k++){
14
+ q = m[i][k] + m[k+1 ][j] + p[i-1 ]*p[k]*p[j];
15
+ if (q < m[i][j])
16
+ m[i][j] = q;
17
+ }
18
+ }
19
+ }
20
+ return m[1 ][n-1 ];
21
+ }
22
+ int main (){
23
+ int n,i;
24
+ cout<<" Enter number of matrices: " ;
25
+ cin>>n;
26
+ int arr[n];
27
+ cout<<" \n Enter dimensions of all matrices:- \n " ;
28
+ for (i=0 ;i<n;i++){
29
+ cout<<" Enter Dimension d" <<i<<" : " ;
30
+ cin>>arr[i];
31
+ }
32
+ int size = sizeof (arr)/sizeof (arr[0 ]);
33
+ cout<<" \n Minimum number of multiplications : " <<MatrixChainMultiplication (arr, size) <<" \n " ;
34
+ return 0 ;
35
+ }
You can’t perform that action at this time.
0 commit comments