90
правок
Изменения
→Псевдокод
int dp[1000][1000];
// dp[i][j] — меморизация на отрезке [i, j)
int matrixChainMultiplication(int l, int r)
dp[l][r] = 0; //Если у нас подотрезок длины 1, то количество операций для перемножения равно нулю
else
dp[l][r] = INFINITYinfinity;
for (int i = l + 1; i < r; i++)
dp[l][r] = min(dp[l][r], v[l].first * v[i].first * v[r - 1].second + matrixChainMultiplication(l, i) + matrixChainMultiplication(i, r));
return dp[l][r];
}