Matrix Chain Multiplication?
int MatrixChainOrder(int[] dims)
int n = dims.Length - 1;
int[,] dp = new int[n, n];
for (int l = 2; l <= n; l++)
Follow on:
for (int i = 0; i < n - l + 1; i++)
int j = i + l - 1;
dp[i, j] = int.MaxValue;
for (int k = i; k < j; k++)
int cost = dp[i, k] + dp[k + 1, j] + dims[i] *
dims[k + 1] * dims[j + 1];
dp[i, j] = Math.Min(dp[i, j], cost);
return dp[0, n - 1];
Explanation:
DP calculates minimal cost to multiply chain of matrices by trying all partitions.