Минимальный и максимальный путь
Квадрат разлинован на $N \times N$ клеток ($1 < N < 26$). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз — в соседнюю нижнюю. Робот разрушается при попытке выхода за границу квадрата или при попытке пересечения стены клетки. В таблице стены отмечены границами с утолщением.
Перед запуском Робота в каждой клетке квадрата указан бонус, который Робот забирает после посещения клетки. Размер бонуса в каждой клетке — это натуральное число, не превышающее 100. Это правило относится к начальной и конечной клеткам маршрута Робота.
Определите минимальную и максимальную суммы бонусов, которые может собрать Робот, перемещаясь из левой верхней клетки квадрата в его правую нижнюю клетку. Исходные данные представлены в форме электронной таблицы размером $N \times N$, в которой одна ячейка соответствует одной клетке квадрата. Стены, через которые Роботу нельзя проходить, отмечены в электронной таблице границами с утолщением.
Условие как в банке ФИПИ — открыть и сверить
| |||||||||||||||||||||||
| |
Это задание с развёрнутым решением: ответом считается запись хода решения, а не строка. Напишите решение на бумаге и сравните с разбором — там каждый шаг с обоснованием.
Открыть разбор1Мягкая — с чего смотретьуровень 1 из 3
В какую клетку можно прийти непосредственно перед данной: сверху или слева?
2Наводящая — какие числа считатьуровень 2 из 3
Для минимальной суммы выбирайте минимум из допустимых предшественников, для максимальной — максимум, добавляя бонус текущей клетки.
3Прямая — фактически решениеуровень 3 из 3
Для каждой клетки используйте рекуррентные формулы: $min[i][j] = bonus[i][j] + \min(min[i-1][j], min[i][j-1])$ и $max[i][j] = bonus[i][j] + \max(max[i-1][j], max[i][j-1])$, исключая переходы через стены.
