РУҚА
18

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

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

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

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

Исходные данные представляют собой электронную таблицу размером $N \times N$, каждая ячейка которой соответствует клетке квадрата.

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

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

3 шага
1

Каждый маршрут из левой верхней клетки в правую нижнюю содержит одну и ту же последовательность перемещений: $N-1$ перемещений вправо и $N-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, а минимальная — 27.

$$$M_{4,4}=41,\quad m_{4,4}=27$$$
Ответ
41 27
41 27
так ответ выглядит в бланке

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

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

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

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

Перепутать порядок чисел в ответе.

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

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

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

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