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