18

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

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

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

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

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

4 шага
1

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

2

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

3

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

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

Ответ

Максимальная и минимальная суммы определяются по данным приложенного файла.

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

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

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

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

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

Рассматривать только правую нижнюю клетку как конечную.

Для минимальной суммы выбирать локально меньший номинал монеты вместо меньшей накопленной суммы.

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

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

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

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