РУҚА
18

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

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

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

Строка 1Строка 2Строка 3Строка 4
1884
10113
13122
2356
Пример входных данных
Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

3 шага
1

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

2

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

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

Для приведённой таблицы после заполнения таблиц максимумов и минимумов в правой нижней клетке получаем значения $41$ и $34$.

Ответ
4134
4134
так ответ выглядит в бланке

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

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

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

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

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

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

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

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

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

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