🎓 Мои уроки
← Все уроки: Олимпиадная математика 📄 PDF

Урок 6. Инварианты и раскраски

Математика

🎯 Что ты узнаешь

📖 Разбираемся в теме

Вот «фокус», который легко проверить самому. Напиши на столе несколько чисел, например , и . Разрешён один ход: стереть любые два числа и написать вместо них их сумму. Попробуй: сотри 3 и 5, напиши 8, остались и ; сотри их, напиши 16, осталось . Что бы ты ни стирал и в каком порядке, в конце всегда выходит 16.

Почему всегда 16? Потому что на каждом ходу сумма всех чисел на столе не меняется: мы убираем два числа и тут же возвращаем ровно столько же — их сумму. А раз в самом начале сумма была , она и останется 16 до конца, как бы мы ни ходили.

Такую величину, которая переживает любые разрешённые ходы, называют инвариант (от латинского «invariant» — «неизменный»). Инвариантом может быть сумма, произведение, чётность, цвет клетки, остаток при делении — что угодно, лишь бы оно не менялось ни на одном ходу.

Зачем вообще нужен инвариант

Допустим, тебя спрашивают: «Можно ли из положения A получить положение B, делая только разрешённые ходы?» Обычно хочется начать перебирать: сделаю такой ход, потом такой, потом эдакий… Но ходов бывают миллионы, и перебрать все невозможно.

Инвариант делает хитрый обход. Если ты найдёшь величину, которая при каждом разрешённом ходе не меняется, и окажется, что в положении A она равна 5, а в положении B равна 7, всё, ответ «нельзя!». Потому что 5 не может превратиться в 7, если эта величина вообще не умеет меняться. Ни один путь из A в B невозможен — сразу, разом, для всех путей.

🤔 А знаешь ли ты? Чтобы доказать, что чего-то сделать нельзя, не нужно перебирать миллион вариантов ходов. Достаточно найти одну неизменную величину, и она закрывает все варианты разом. Один инвариант сильнее тысячи переборов.

⚠️ Важная тонкость. Инвариант доказывает только невозможность. Если в A и в B инвариант одинаковый, это ещё не значит, что переход возможен! Может, мешает что-то другое. Инвариант — это как замок на двери: если замок закрыт (значения разные), точно не пройдёшь. Но если замка нет, это ещё не гарантия, что дверь откроется.

Инвариант, который меняется по правилу

Иногда величина не стоит на месте, а меняется по понятному закону, и это тоже инвариант! Например, если при каждом ходе некое число увеличивается ровно на 2, то его чётность не меняется никогда. Само число скачет, а его чётность «застыла». Мы будем ловить именно такие «застывшие свойства».

Чётность — это инвариант №1. Вспомни прошлый урок про чётность. Когда кузнечик прыгает влево-вправо на 1, его расстояние от начала каждый раз меняется на 1, то есть чётность расстояния всё время «переключается». А вот другая величина — например, чётность числа сделанных прыжков плюс чётность текущего положения — может оставаться постоянной. Чётность очень удобна, потому что у неё всего два значения: «чёт» и «нечёт». Если в начале «чёт», а в конце нужно «нечёт», значит, не получится.

💡 Лайфхак: Как искать инвариант? Сделай один ход «руками» на маленьком примере и спроси себя: а что осталось прежним? Сумма? Чётность суммы? Число клеток какого-то цвета? Та величина, что выжила после хода, — твой главный подозреваемый.

Раскраски: способ увидеть невидимый инвариант

Раскраски — это специальный фокус, который помогает придумать инвариант там, где его не видно. Идея такая: мы раскрашиваем клетки (или предметы) в несколько цветов так, чтобы каждый разрешённый ход (или каждая фигурка, которой мостят) затрагивал цвета по понятному правилу. Тогда «сколько чего какого цвета» становится инвариантом.

Самая знаменитая раскраска — шахматная: клетки чёрные и белые в шашечку, соседние всегда разного цвета. Костяшка домино 1×2 всегда накрывает одну чёрную и одну белую клетку — это ключ ко многим задачам.

Костяшка домино 1×2 бел. чёрн. Всегда 1 белая + 1 чёрная
Рис. 1. Шахматная раскраска: костяшка домино всегда накрывает одну белую и одну чёрную клетку.

Почему домино всегда берёт разные цвета? Потому что клетки, которые оно накрывает, — соседние (по стороне), а у соседних по шахматной раскраске цвет всегда разный. Значит, если положить костяшек, они накроют ровно белых и чёрных клеток. Число белых равно числу чёрных — вот наш инвариант замощения домино. Если на фигуре белых и чёрных клеток не поровну, замостить домино её нельзя. Просто и безотказно.

Раскраски в несколько цветов

Но шахматной раскраской дело не ограничивается. Под каждую фигурку подбирают свою раскраску:

Главный принцип один: нужна такая раскраска, при которой каждая фигурка покрывает цвета поровну или строго предсказуемо. Тогда «сколько клеток какого цвета» превращается в инвариант, и если в фигуре цветов не поровну, замостить нельзя.

📌 Запомни: Раскраска — это не картинка для красоты. Это способ посчитать то, что мешает замощению. Выбирай цвета так, чтобы фигурка всегда покрывала их одинаково.

Почему это вообще работает: общая логика

Соберём в одну мысль. Пусть мы хотим замостить область фигурками одного вида. Красим область так, чтобы каждая фигурка, куда её ни положи, покрывала, скажем, ровно одну красную клетку. Тогда:

А значит, красных клеток должно быть ровно столько, сколько всего фигурок. Если посчитать красные клетки и увидеть, что их «неправильное» количество, замощение невозможно. Красная клетка стала счётчиком фигурок, то есть инвариантом. Вот и весь секрет.

✍️ Разбор примеров

Пример 1. На доске написаны числа 1, 2, 3, …, 20. За один ход разрешается стереть любые два числа и вместо них написать их сумму. Так делают, пока не останется одно число. Каким оно будет?

⏱ Попробуй сам, потом читай дальше. Подсказка: а что вообще не меняется, когда два числа превращаются в их сумму?

Как рассуждаем. Подумаем, что не меняется при ходе. Мы стираем два числа и , пишем . Сумма всех чисел на доске была какая-то . После хода: мы убрали и (это ) и добавили . Итог: . Сумма не изменилась! Значит, общая сумма — инвариант. В начале сумма . Последнее оставшееся число и есть вся сумма.

Ответ: 210.

Пример 2. Те же числа 1, 2, …, 20, но теперь за ход стирают два числа и пишут их разность (из большего вычитают меньшее). В конце осталось одно число. Может ли оно быть чётным?

Как рассуждаем. Теперь сумма меняется: казалось бы, инвариант сломался. Но не спеши! Посмотрим на сумму внимательнее. Стираем и , пишем . Новая сумма: . Разберём оба случая. Если , то , и новая сумма . А если , то , и новая сумма . В обоих случаях мы вычли чётное число ( или )! Значит сама сумма скачет, а вот её чётность не меняется. Вот он, спрятавшийся инвариант. Начальная сумма — чётная. Значит и в конце сумма чётная. Но в конце осталось только одно число, и оно равно сумме. Раз сумма чётная, число чётное.

Ответ: да, последнее число обязательно чётное (его чётность предопределена).

💡 Лайфхак: Если сумма «не хочет» быть инвариантом, попробуй её чётность. Очень часто меняется-то она на чётную величину, и чётность выживает. Это приём-выручалочка.

Пример 3. Можно ли замостить (полностью покрыть без наложений и без выхода за край) доску 5×5 костяшками домино 1×2?

Как рассуждаем. Сначала самый простой инвариант — количество клеток. На доске клеток. Каждая костяшка закрывает ровно 2 клетки. Значит закрытых клеток всегда чётное число. А 25 — нечётное. Покрыть нечётное число клеток костяшками по 2 невозможно.

Ответ: нельзя.

📌 Запомни: Прежде чем городить хитрые раскраски, проверь самое тупое: делится ли число клеток на размер фигурки? Половина задач отсеивается прямо здесь.

Пример 4. А теперь — раскраска в 4 цвета. Квадрат 6×6 хотят разрезать на «полоски» 1×4 (четыре клетки в ряд, можно класть как угодно: горизонтально или вертикально). Возможно ли это?

⏱ Попробуй сам. Клеток , и , на 4 делится, простой фокус не поможет. Нужна раскраска. Какая?

Как рассуждаем. Клеток , и , делится на 4, простой инвариант не мешает. Попробуем раскраску в 4 цвета по диагоналям: клетку с координатами красим цветом, равным остатку при делении на 4. Получатся четыре «сорта» клеток: с остатками 0, 1, 2, 3.

Ключевое свойство: любая полоска 1×4 (хоть горизонтальная, хоть вертикальная) накрывает по одной клетке каждого из 4 цветов. Почему? Возьмём горизонтальную полоску в строке , столбцы . Суммы — это четыре подряд идущих числа, а их остатки при делении на 4 — это всегда все четыре разных остатка (в каком-то порядке). Для вертикальной полоски то же самое: меняется , и снова четыре подряд идущих суммы. Значит, каждая полоска берёт ровно один цвет 0, один цвет 1, один цвет 2 и один цвет 3.

230123 301230 012301 123012 230123 301230 Цвет = остаток (i+j) на 4. Полоска 1×4 берёт все 4 цвета
Рис. 2. Раскраска 6×6 в 4 цвета по диагоналям. Любая полоска 1×4 покрывает по одному числу 0, 1, 2, 3, но самих цветов на доске не поровну.

Раз каждая полоска берёт по одной клетке каждого цвета, то для замощения клеток каждого цвета должно быть поровну. Полосок было бы , значит каждого цвета должно быть по 9. Сосчитаем по картинке, сколько клеток какого цвета:

Всего , сходится. Но поровну не получилось: цвета 0 всего 8, а цвета 2 целых 10. А для замощения нужно строго по 9 каждого. Инвариант нарушен, замостить нельзя.

Ответ: нельзя, раскраска в 4 цвета показывает, что клеток разных цветов не поровну.

⚠️ Не всякая раскраска срабатывает! Если бы мы взяли шахматную раскраску, полоска 1×4 накрывала бы 2 белые и 2 чёрные, всегда поровну, и никакого противоречия мы бы не поймали. Раскраску надо подбирать под фигурку. Для полосок 1×4 подходит именно 4-цветная по диагоналям, а шахматная бесполезна.

🤔 А знаешь ли ты? Даже у профессиональных математиков первая раскраска часто оказывается «мимо». Это не провал — это часть работы. Отбросил неудачную, взял другую. Главное — не сдаться после первой попытки.

Пример 5. На столе лежат 5 монет орлом вверх. За ход переворачивают ровно две монеты. Можно ли добиться, чтобы все 5 лежали решкой вверх?

⏱ Попробуй сам. Следи за числом «орлов»: как оно меняется за один ход?

Как рассуждаем. Посчитаем число монет, лежащих орлом вверх. В начале их 5, в конце нужно 0. За один ход мы переворачиваем две монеты. Тут три случая: перевернули две «орла» (орлов стало на 2 меньше), две «решки» (орлов на 2 больше) или орла и решку (число орлов не изменилось). Во всех случаях число орлов меняется на , или , то есть на чётную величину. Значит, чётность числа орлов — инвариант. В начале орлов 5 — нечётно. В конце нужно 0 — чётно. Из нечётного чётное не получить.

Ответ: нельзя, чётность числа орлов не может измениться.

💡 Лайфхак: В задачах про монеты и переворачивания почти всегда работает чётность числа «орлов» (или «решек»). Смотри, на сколько меняется это число за один ход. Если всегда на чётное, вот и инвариант.

💡 Запомни главное

📝 Домашнее задание

  1. На доске числа 1, 2, …, 10. За ход стирают два числа и пишут их сумму. Какое число останется в конце?

  2. На доске числа . За ход стирают два и пишут их разность. Может ли последнее число оказаться нечётным? Почему?

  3. Можно ли замостить доску 7×7 костяшками домино 1×2? Объясни.

  4. Доску 8×8 раскрасили в шашечку. Вырезали две клетки одного и того же цвета (не обязательно углы). Можно ли утверждать, что оставшиеся 62 клетки точно нельзя замостить домино? А если вырезали две клетки разного цвета, что можно сказать?

  5. На столе лежат 7 монет орлом вверх. За один ход переворачивают ровно три монеты. Можно ли за несколько ходов сделать так, чтобы все монеты лежали решкой вверх?

  6. На доске 8×8 жук стоит в левом нижнем углу и хочет пройти по всем клеткам ровно по одному разу, переходя только на соседнюю клетку (вверх/вниз/влево/вправо), и закончить в правом верхнем углу. Возможно ли это?

  7. ⭐ Квадрат 10×10 хотят разрезать на полоски 1×4. Возможно ли это?