РУҚА
18

Шешімі: Монеты на пути Робота

ЕГЭ · Информатика · Тапсырма 18 · Динамикалық бағдарламалау
ЖоғарыФИПИ4272A3Қысқа жауап≈ 10 минутТалдау 5 қадам
Условие

Квадрат разлинован на $N \times N$ клеток ($1 < N < 30$). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде «вправо» Робот перемещается в соседнюю правую клетку, по команде «вниз» — в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.

Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота.

Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. Исходные данные представляют собой электронную таблицу размером $N \times N$, каждая ячейка которой соответствует клетке квадрата. Внутренние и внешние стены обозначены утолщёнными линиями.

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

5 қадам
1

Робот движется только вправо и вниз, поэтому в клетку можно попасть только из клетки сверху или из клетки слева, если между клетками нет стены.

2

Для каждой клетки строятся два значения: максимальная и минимальная сумма монет на допустимом пути от начальной клетки до этой клетки.

$$max[i][j] = a[i][j] + \max\limits_{(k,l)\to(i,j)} max[k][l]$$
3

Аналогично минимальная сумма определяется через минимум по допустимым переходам.

$$min[i][j] = a[i][j] + \min\limits_{(k,l)\to(i,j)} min[k][l]$$
4

Начальная клетка содержит свою монету. В каждой последующей клетке учитываются только переходы, не пересекающие внутреннюю стену.

$$max[1][1] = min[1][1] = a[1][1]$$

После заполнения таблиц в правой нижней клетке находятся искомые значения.

$$max[N][N],\ min[N][N]$$
Жауап

В правой нижней клетке таблиц динамического программирования находятся два ответа: сначала max[N][N], затем min[N][N].

Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Не учитывать монету в начальной или конечной клетке.

Разрешать переход через внутреннюю стену.

Использовать только один показатель вместо отдельных таблиц максимальных и минимальных сумм.

Перепутать порядок ответов: сначала требуется максимальная, затем минимальная сумма.

Закрепить приёмВ теме «Динамикалық бағдарламалау» ещё 71 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 18 ЕГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 5 шагов: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Динамикалық бағдарламалау»: в ней 72 задачи, и у каждой есть такой же разбор. Тіркеу қажет емес.