Правильный подход тут - именно обобщение одномерного случая (по крайней мере, оно очень простое, а других простых подходов я за 10 минут не придумал).
Пусть

- максимальная сумма, получаемая за первые

столбцов. Для одномерного случая

очень просто выражается через

и

- оптимальное решение, включающее

-й элемент - это собственно

-й элемент и оптимальное решение для первых

элементов. Т.е. когда мы строим из решения для

столбца решение для

столбцов нас интересует только брали мы

-й элемент или нет; какие конкретно предыдущие элементы мы брали - неважно, важна только их сумма.
Переформулируем это:

- это максимальная сумма за первые

столбцов, если

-й элемент не брать, а

- максимальная сумма за первые

столбцов, если

-й элемент брать. Заметим, что

выражается через

и

- попробуйте выписать это выражение явно.
Если строк больше одной, то для перехода от

столбца к

нам уже не хватит простого параметра

. Подумайте, какая информация о решении для первых

столбцов нам нужна, чтобы продолжить его до

.