РУҚА
18

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

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

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

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

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

4 шага
1

Создаём две таблицы динамического программирования: одну для максимальной суммы, другую для минимальной суммы монет при достижении каждой клетки.

$$M_{i,j}=\text{максимальная сумма},\quad m_{i,j}=\text{минимальная сумма}$$
2

Для каждой клетки рассматриваем переход сверху и переход слева. Переход учитывается только в том случае, если между клетками нет стены.

$$M_{i,j}=a_{i,j}+\max(\text{доступные значения }M),\quad m_{i,j}=a_{i,j}+\min(\text{доступные значения }m)$$
3

Начальную клетку инициализируем её номиналом. Последовательно обрабатываем клетки слева направо и сверху вниз.

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

Ответ

Числа зависят от данных в прилагаемом файле.

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

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

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

Переходить через внутреннюю стену.

Использовать только максимальные или только минимальные суммы.

Перепутать порядок ответа: сначала требуется максимум, затем минимум.

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

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

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

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