РУҚА
18

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

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

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

В ответе укажите два числа: сначала максимальную сумму, затем минимальную.

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

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

4 шага
1

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

2

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

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

Аналогично вычисляем минимальную сумму, заменяя максимум минимумом.

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

Для всех клеток, ограниченных стенами справа и снизу, выбираем наибольшее значение из таблицы максимумов и наименьшее значение из таблицы минимумов.

$$S_{\max}=\max_{(i,j)\in F} M_{i,j},\quad S_{\min}=\min_{(i,j)\in F} m_{i,j}$$
Ответ

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

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

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

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

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

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

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

Путают максимальную и минимальную суммы в итоговом ответе.

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

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

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

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