18

Решение: Минимальный и максимальный путь

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

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

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

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

4 шага
1

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

2

Для клетки с бонусом $a_{i,j}$ рассматриваем переходы из верхней и левой клеток. Переход через стену не учитываем.

$$min_{i,j}=a_{i,j}+\min\limits_{(k,l)\to(i,j)} min_{k,l},\quad max_{i,j}=a_{i,j}+\max\limits_{(k,l)\to(i,j)} max_{k,l}$$
3

Для начальной клетки минимальная и максимальная суммы равны её бонусу. Если допустим только один вход в клетку, используем только соответствующее значение.

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

Ответ

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

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

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

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

Разрешают переход через стену.

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

Разрешают движение вверх или влево, хотя Робот может двигаться только вправо и вниз.

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

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

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

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