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