Шешімі: Максимальная и минимальная суммы
Квадрат разлинован на $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}),\quad m_{i,j}=a_{i,j}+\min(m_{i-1,j},m_{i,j-1})$$При вычислении клетки исключаем переходы, через которые проходит внутренняя стена. Недостижимым клеткам значения не присваиваем.
Для каждой конечной клетки берём рассчитанные максимальную и минимальную суммы. Итоговый максимальный ответ — наибольшее значение среди конечных клеток, итоговый минимальный ответ — наименьшее.
Численные значения невозможно определить без содержимого прилагаемой электронной таблицы.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывают монету в начальной или конечной клетке.
Разрешают переход через внутреннюю стену.
Ищут минимум и максимум только в правой нижней клетке, хотя конечных клеток может быть несколько.