Решение: Максимальный и минимальный маршрут
Квадрат разлинован на $N \times N$ клеток ($1 < N < 26$). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде «вправо» Робот перемещается в соседнюю правую клетку; по команде «вниз» — в соседнюю нижнюю. При попытке пересечь границы квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. Исходные данные представляют собой электронную таблицу размером $N \times N$, каждая ячейка которой соответствует клетке квадрата.
| Столбец 1 | Столбец 2 | Столбец 3 | Столбец 4 |
|---|---|---|---|
| 1 | 8 | 8 | 4 |
| 10 | 1 | 1 | 3 |
| 1 | 3 | 12 | 2 |
| 2 | 3 | 5 | 6 |
Пример входных данных приведён в таблице. Для этой таблицы максимальная сумма равна 41, а минимальная — 27.
Решение по шагам
4 шагаРобот делает только перемещения вправо и вниз, поэтому в каждую клетку он может попасть только из клетки сверху или из клетки слева.
Для каждой клетки строим две таблицы: максимальную и минимальную сумму монет на пути от начальной клетки до данной клетки.
$$\mathrm{maxSum}_{i,j}=a_{i,j}+\max(\mathrm{maxSum}_{i-1,j},\mathrm{maxSum}_{i,j-1})$$Аналогично вычисляем минимальную сумму.
$$\mathrm{minSum}_{i,j}=a_{i,j}+\min(\mathrm{minSum}_{i-1,j},\mathrm{minSum}_{i,j-1})$$Для приведённой таблицы в правой нижней клетке получаются максимальная сумма 41 и минимальная сумма 27.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывают монету в начальной или конечной клетке.
Путают максимум и минимум при выборе предыдущей клетки.
Складывают значения только одного маршрута, не сравнивая варианты перехода.