Решение: Максимальная и минимальная сумма
Квадрат разлинован на $N \times N$ клеток ($1 < N < 30$). Исполнитель Робот может перемещаться по клеткам только вправо или вниз. Квадрат ограничен внешними стенами, между соседними клетками могут быть внутренние стены, через которые Робот пройти не может.
Перед каждым запуском в каждой клетке лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету, в том числе в начальной и конечной клетках маршрута. В клетках, которые справа и снизу ограничены стенами, движение прекращается, а накопленная сумма считается итоговой. Определите максимальную и минимальную суммы среди всех возможных маршрутов из левой верхней клетки до конечной клетки маршрута.
Исходные данные находятся в прилагаемом файле электронной таблицы размером $N \times N$. Каждая ячейка соответствует клетке квадрата, а внутренние и внешние стены обозначены утолщёнными линиями.
Решение по шагам
4 шагаПостроим две таблицы динамического программирования: $max[i][j]$ — максимальная сумма при достижении клетки $(i,j)$, а $min[i][j]$ — минимальная сумма.
Для каждой клетки, кроме стартовой, рассмотрим допустимые переходы из клетки сверху и из клетки слева. Переход разрешён только при отсутствии соответствующей стены.
Если $C[i][j]$ — номинал монеты в текущей клетке, то значение для максимума равно максимуму из допустимых предыдущих значений плюс $C[i][j]$, а значение для минимума — минимуму из них плюс $C[i][j]$.
Для всех клеток, ограниченных стенами справа и снизу, соберём значения $max[i][j]$ и $min[i][j]$. Максимальный ответ — наибольшее значение среди первых, минимальный — наименьшее среди вторых.
Точный ответ нельзя определить без содержимого прилагаемой электронной таблицы.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывать монету в начальной или конечной клетке.
Разрешать переход через внутреннюю стену.
Рассматривать только правую нижнюю клетку как конечную.
Искать максимум и минимум только по одному маршруту.