Задание EGEINFF7EDCC: Оптимальный маршрут по клетчатому полю

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Оптимальный маршрут по клетчатому полю.

Учебные темы: Двумерные массивы (матрицы). Алгоритмы обработки двумерных массивов: заполнение двумерного числового массива по заданным правилам, поиск элемента в двумерном массиве, вычисление максимума (минимума) и суммы элементов двумерного массива, перестановка строк и столбцов двумерного массива; Динамическое программирование как метод решения задач с сохранением промежуточных результатов. Задачи, решаемые с помощью динамического программирования: вычисление рекурсивных функций, подсчёт количества вариантов, задачи оптимизации; Анализ данных с помощью электронных таблиц. Вычисление суммы, среднего арифметического, наибольшего (наименьшего) значения диапазона. Вычисление коэффициента корреляции двух рядов данных. Построение столбчатых, линейчатых и круговых диаграмм. Построение графиков функций. Подбор линии тренда, решение задач прогнозирования. Решение задач оптимизации с помощью электронных таблиц.

Впишите правильный ответ.

Рисунок из условия ФИПИ

Задание выполняется с использованием прилагаемых
файлов.

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

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

Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки
в правую нижнюю. В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

 

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

Пример входных данных

1

8

8

4

10

1

1

3

1

3

12

2

2

3

5

6

 

 

Скачать файл задания (ODS, ФИПИ)


i
СВОЙСТВА ЗАДАНИЯ
Тип ответа:Краткий ответ
Номер: F7EDCC
НЕ РЕШЕНО Ответить

Решение задания EGEINFF7EDCC

Ответ: 2226 902

Решение.
Откроем приложенную электронную таблицу. Исходные числа занимают диапазон A1:T20: поле имеет размер 20 × 20. Начинаем в A1 и движемся только вправо или вниз. Число в каждой посещённой клетке, включая начало и финиш, прибавляется к сумме.
Нужно обязательно дойти до T20. Маршрут, закончившийся у стен раньше, в ответ не входит.
В исходном поле найдено 55 внутренних границ между соседними клетками, через которые проход запрещён.
Будем хранить для каждой достижимой клетки две величины: L — наименьшую сумму от A1 до неё, H — наибольшую. Для A1 обе величины равны числу в самой A1: 42.
В любую другую клетку можно прийти только из соседней слева или сверху. Переход слева разрешён, если нет стены между этими клетками; переход сверху — если нет стены над текущей клеткой. Недостижимого соседа не используем.
Если оба входа разрешены, прибавим число текущей клетки к меньшей из двух величин L и к большей из двух величин H. Если допустимый вход один, берём только его. Если нет ни одного, помечаем клетку «нет пути», а не нулём.
Это динамическое программирование: любой путь в текущую клетку заканчивается одним из допустимых входов. Поэтому выбор лучшего пути до предшественника перебирает все возможности последнего шага. Обрабатывая строки сверху вниз, а клетки в строке слева направо, получаем точные минимум и максимум для всего поля.
Для расчёта в редакторе таблиц создадим под исходными числами блок максимумов с началом в A22. В A22 введём =A1. Например, значение для B2 окажется в B23: при двух допустимых входах формула имеет вид =B2+МАКС(A23;B22). Если вход перекрыт стеной или ведёт из недостижимой клетки, соответствующую ссылку исключаем. Начальную клетку общей формулой не заменяем.
Первую строку заполняем только по входу слева, первый столбец — только по входу сверху. После каждой стены отдельно проверяем достижимость. Для минимумов создадим такой же блок, заменив МАКС на МИН и сохранив все ограничения переходов. Нельзя протянуть общую формулу через стены без исправления ссылок.
Контрольные значения начала таблицы:

КлеткаЧислоLH
A1424242
B174116116
A295151
B272123188

Итог в единственной разрешённой конечной клетке T20:

ФинишМинимумМаксимум
T209022226

В T20 получаем L = 902, H = 2226. Значения в других тупиках не учитываем.
Проверка. Восстановим оба оптимальных маршрута, каждый раз выбирая предшественника, давшего записанную сумму. Ниже указаны посещённые столбцы по строкам; диапазон включает оба края. Между строками спускаемся в том столбце, в котором закончился предыдущий отрезок. Знак «—» означает, что маршрут завершился раньше.

СтрокаМинимальный: столбцыСуммаМаксимальный: столбцыСумма
1A42A–B116
2A9B–M558
3A11M–P283
4A29P85
5A28P63
6A–G216P82
7G–J49P88
8J–M31P53
9M19P–Q159
10M20Q77
11M6Q74
12M5Q48
13M13Q27
14M49Q46
15M58Q–R89
16M–O40R52
17O14R62
18O–P68R–S113
19P50S–T140
20P–T145T11
Итого9022226

Все переходы этих маршрутов разрешены. Суммы чисел исходного файла дают 902 и 2226; начальная и конечная клетки учтены ровно один раз. Таблица динамического программирования доказывает, что меньшая и большая суммы невозможны.
По условию сначала записываем максимум, затем минимум.
Ответ: 2226 902.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINFF7EDCC.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.