Advertisement
Oppenheimer

Matric chain multiplication

Aug 15th, 2022
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. // matrix chain multiplication
  2. // dimensions of matrix are given  [40 ,20 ,30,10,30] // find min cost of multiplication
  3. // 2 X 3 : 3 X6 multiple kara to new matrix  2 X 6 ki bani
  4. // iski cost 2 X3 X6 hogi
  5. // so move a partition and choose them solve them apply a condn
  6. // [40, 20, 30 ,10,30] to Array 1 is 40 X 20 ... array 2 is 20 X 30
  7. // so arr1 X (rest) gives diff result than (arr1 X arr2 ) *(rest)
  8. int dp[100][100];
  9.  
  10. int mcm(vector<int>arr ,int i, int j){
  11.     if(i>=j) return 0;
  12.     if(dp[i][j]!= -1) return dp[i][j];
  13.     int mn = INT_MAX;
  14.     // arr_i = i-1 X i;
  15.     for(int a=i;a<j;a++){
  16.         int cost = mcm(arr,i,a) + mcm(arr,a+1,j) + arr[i-1]*arr[a]*arr[j] ;
  17.         mn = min(mn,cost);
  18.     }
  19.     dp[i][j] = mn;
  20.     return dp[i][j];
  21. }
  22.  
  23.  
  24. int main(){
  25.     int n = arr.size();
  26.     memset(dp,-1,sizeof(dp));
  27.   int ans =   mcm(arr , 1,n-1);
  28.     return ans;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement