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];
}
