18

Решение: Максимальная и минимальная суммы

ЕГЭ · Информатика · Задание 18 · Динамическое программирование
ПовышеннаяФИПИ6999A7Развёрнутое решение≈ 10 минутРазбор в 4 шага
Условие

Квадрат разлинован на $N \times N$ клеток ($1 < N < 26$). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде «вправо» Робот перемещается в соседнюю правую клетку, по команде «вниз» — в соседнюю нижнюю. При попытке пересечь внутренние границы или границы квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота. Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. Исходные данные представляют собой электронную таблицу размером $N \times N$, каждая ячейка которой соответствует клетке квадрата.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

4 шага
1

Робот может попасть в клетку только сверху или слева, поэтому для каждой клетки заполняются две таблицы: максимальных и минимальных сумм.

$$M_{i,j}=a_{i,j}+\max(M_{i-1,j},M_{i,j-1})$$
2

Для минимальной суммы используется тот же переход с операцией минимума.

$$m_{i,j}=a_{i,j}+\min(m_{i-1,j},m_{i,j-1})$$
3

В первой строке и первом столбце существует только один возможный маршрут, поэтому значения в них получают последовательным сложением монет.

После заполнения таблиц в правой нижней клетке находятся максимальная и минимальная суммы для всех допустимых маршрутов.

Ответ

В приложенной электронной таблице укажите максимальную сумму, затем минимальную.

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Не учитывать монеты в начальной или конечной клетке.

Использовать минимум для обеих таблиц или максимум для обеих таблиц.

Разрешить перемещения вверх или влево.

Сложить значения только одного найденного маршрута вместо сравнения всех возможных маршрутов.

Закрепить приёмВ теме «Динамическое программирование» ещё 71 задача — с ответом и таким же разбором.
Тренироваться

Как решать задание 18 ЕГЭ, информатика

Разбор этой задачи разложен на 4 шага: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Динамическое программирование»: в ней 72 задачи, и у каждой есть такой же разбор. Регистрация не нужна.