Шешімі: Максимальная и минимальная сумма
Квадрат разлинован на $N \times N$ клеток ($1 < N < 30$). Исполнитель Робот может перемещаться по клеткам только вправо или вниз. Между соседними клетками могут быть внутренние стены, через которые Робот пройти не может. В каждой клетке лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету, включая начальную и конечную клетки маршрута. Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. Исходные данные находятся в прилагаемом файле: электронная таблица размером $N \times N$, в которой утолщёнными линиями обозначены внутренние и внешние стены.
Шешім по шагам
4 қадамСоздаём две таблицы динамического программирования: одну для максимальной суммы, другую для минимальной суммы монет при достижении каждой клетки.
$$M_{i,j}=\text{максимальная сумма},\quad m_{i,j}=\text{минимальная сумма}$$Для каждой клетки рассматриваем переход сверху и переход слева. Переход учитывается только в том случае, если между клетками нет стены.
$$M_{i,j}=a_{i,j}+\max(\text{доступные значения }M),\quad m_{i,j}=a_{i,j}+\min(\text{доступные значения }m)$$Начальную клетку инициализируем её номиналом. Последовательно обрабатываем клетки слева направо и сверху вниз.
После обработки всей таблицы искомые значения находятся в правой нижней клетке: сначала максимум, затем минимум.
Числа зависят от данных в прилагаемом файле.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывать монеты в начальной или конечной клетке.
Переходить через внутреннюю стену.
Использовать только максимальные или только минимальные суммы.
Перепутать порядок ответа: сначала требуется максимум, затем минимум.