Решение: Максимальный и минимальный путь
Квадрат разлинован на $N \times N$ клеток, где $1 < N < 30$. Исполнитель Робот может перемещаться по клеткам только вправо или вниз. Между соседними клетками могут находиться внутренние стены, через которые Робот пройти не может. В каждой клетке лежит монета достоинством от 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 |
Решение по шагам
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})$$Для приведённой таблицы после заполнения таблиц максимумов и минимумов в правой нижней клетке получаем значения $41$ и $34$.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не учитывать монету в начальной или конечной клетке.
Использовать минимум при поиске максимальной суммы или максимум при поиске минимальной.
Разрешать переход через внутреннюю стену.
Записывать сначала минимальную, а затем максимальную сумму.