Робот и монеты
Робот идёт по клетчатому полю со стенами и собирает монеты. Считаем наибольшую и наименьшую сумму прямо в таблице, без кода.
Что проверяет номер
Идея простая: в каждую клетку можно прийти только слева или сверху. Значит, лучшая сумма в клетке равна её монете плюс лучшее из двух соседних значений. Посчитав так всю таблицу по порядку, получаем ответ в конечной клетке, и перебирать пути не нужно.
Таблица 20×20 с монетами. Робот ходит вправо или вниз, стены нарисованы толстыми границами ячеек. Надо найти наибольшую и наименьшую сумму монет по пути в конечную клетку (из неё ходить некуда).
Шесть шагов
Посмотрим на маленьком поле 3×3. Клетка в первой строке получает сумму только слева, в первом столбце только сверху, а остальные выбирают большее из двух соседей. Для минимума то же самое, только выбирается меньшее.
- Сделай копию таблицы. Копию кладём ниже или правее, на том же листе. Это будет таблица с формулами.
- Делаем левую и верхнюю стенку. Первая строка и первый столбец: в них в клетку можно прийти только с одной стороны. Первая клетка — просто её монета. Дальше по первой строке
=монета + слева, по первому столбцу=монета + сверху. - Заполняем всё остальное через МАКС. В каждой клетке:
=монета + МАКС(слева; сверху). «Монета» — клетка из исходной таблицы, «слева» и «сверху» — клетки твоей таблицы с формулами. Формулу потом можно копировать протягиванием. - Вставляем таблицу, только формат. Копируем исходную таблицу, на таблицу с формулами вставляем «Специальная вставка» (
Ctrl+Shift+Vв LibreOffice,Ctrl+Alt+Vв Excel) и выбираем «Только форматы». Так стены (границы) переезжают на таблицу с формулами. - Обрабатываем проблемные места и выделяем их. Проблемные места — клетки, у которых стена закрывает один из путей. Там формула другая: вместо
МАКС(слева; сверху)берём только ту клетку, откуда можно прийти (=монета + слеваили=монета + сверху). Если в клетку вообще нельзя попасть, формулу стираем (иначе она испортит соседей). Красим эти клетки, чтобы не потерять. - Чтобы найти минимум:
Ctrl+H, заменяемМАКСнаМИН. Проблемные клетки не трогаем, они и так с одним источником.
Ответ читаем в конечных клетках: клетках, из которых нельзя идти ни вправо, ни вниз. Наибольшее из них (при МАКС) и наименьшее (при МИН) — два числа ответа. Конечные клетки, в которые нельзя попасть, пропускаем.
Формулы с адресами ячеек
Пусть поле 3×3 лежит в ячейках A1:C3, а копию с формулами делаем в E1:G3. Каждая клетка копии считается из клетки поля и соседних клеток копии:
| ячейка | формула | что значит |
|---|---|---|
| E1 | =A1 | старт: только его монета |
| F1 | =B1+E1 | первая строка: прийти можно только слева |
| E2 | =A2+E1 | первый столбец: прийти можно только сверху |
| F2 | =B2+МАКС(E2;F1) | монета плюс лучшее из клеток слева и сверху |
Формулу из F1 протяни вправо, из E2 вниз, а из F2 на всё оставшееся поле. Адреса сдвигаются сами, поэтому писать каждую клетку вручную не нужно.
Как учесть стену. Пусть стена стоит между F2 и G2. Тогда в G2 прийти можно только сверху, и формула становится =C2+G1. Если стена закрывает клетку и сверху, и слева, в неё попасть нельзя: сотри формулу. Такие клетки выдели цветом: при замене МАКС на МИН они не изменятся, и ты их не потеряешь.
Робот идёт вправо или вниз из левой верхней клетки в правую нижнюю. Найди наибольшую и наименьшую сумму монет. Запиши два числа через пробел.
| 3 | 1 | 5 |
| 4 | 8 | 2 |
| 6 | 1 | 7 |
Как заполняется таблица
Вот то же поле 3×3 после формул с МАКС и с МИН. Первая таблица с МАКС, вторая с МИН. В первой строке и первом столбце выбирать не из чего, поэтому там они совпадают.
| 3 | 4 | 9 |
| 7 | 15 | 17 |
| 13 | 16 | 24 |
| 3 | 4 | 9 |
| 7 | 12 | 11 |
| 13 | 13 | 18 |
Проверь центральную клетку сам: её значение равно монете 8 плюс лучшее из клеток слева и сверху. Так же считается каждая клетка поля.
Робот идёт вправо или вниз по полю 4×4. Найди наибольшую и наименьшую сумму. Запиши через пробел.
| 2 | 7 | 1 | 3 |
| 5 | 1 | 9 | 2 |
| 4 | 6 | 2 | 8 |
| 1 | 3 | 7 | 4 |
Как смотреть, где стена
Стена просто убирает один из двух вариантов. В формуле такой клетки остаётся единственный источник.
Стена между двумя клетками — это толстая линия на границе: справа от левой клетки или слева от правой (рисуют по-разному). Проверяй обе стороны. На картинке стена видна глазами, ничего считать не надо.
Если ходы вправо и вверх, старт слева снизу, и «сверху» в формуле заменяется на «снизу». Смотри и на порядок ответа: иногда просят сначала наименьшую, потом наибольшую.
То же поле, но между центральной клеткой (8) и клеткой справа от неё (2) стоит стена. Найди наибольшую и наименьшую сумму.
| 3 | 1 | 5 |
| 4 | 8 | 2 |
| 6 | 1 | 7 |
Поле 3×3 из первого задания, но робот стартует слева снизу и ходит вправо или вверх, финиш справа сверху. Найди наибольшую сумму.
| 3 | 1 | 5 |
| 4 | 8 | 2 |
| 6 | 1 | 7 |
Ловушки
Стена может быть нарисована с любой из двух сторон клетки.
Клетка, в которую нельзя попасть, должна быть пустой, иначе она тянет сумму вниз (особенно у МИН).
Конечных клеток несколько, смотри все.
Монета стартовой и конечной клеток входит в сумму.
Порядок ответа в условии: прочитай последнюю строку.
Домашка
Задачи с настоящих экзаменов и из банка ФИПИ. Скачай файл к задаче, реши в Excel или LibreOffice и впиши ответ.
Задачи «Попробуй сам» учебные, в домашке задачи с настоящих экзаменов и из банка ФИПИ. Номер решается в Excel или LibreOffice.