Задача 067

Дано натуральное число п. Назовём словом последовательность из n нулей и единиц, а маской — последовательность из п нулей, единии, и звёздочек. Слово соответствует маске, если оно получено из неё заменой звёздочек на нули и единицы. Рассмотрим набор масок \mathcal{M}, удовлетворяющий следующим двум условиям:

(1) каждое слово соответствует ровно одной маске, и

(2) для каждой из п позиций найдётся маска из \mathcal{M}, в которой в этой позиции стоит не звездочка.

Найдите наименьшее возможное количество масок в таком наборе \mathcal{M}.

Подсказка

Рассмотрим двудольный граф G, в котором вершинами одной из долей будут номера позиций в слове длины n, вершинами второй из долей будут маски, а рёбрами соединим каждую маску с теми позициями, на которых стоит не звездочка. Пусть доля V_{1} это вершины \{1,2 \ldots, n\}, соответствующие номерам позиций, а доля V_{2} это вершины \left\{u_{1}, u_{2} \ldots, u_{k}\right\}, соответствующие маскам.

Решение

Рассмотрим двудольный граф G, в котором вершинами одной из долей будут номера позиций в слове длины n, вершинами второй из долей будут маски, а рёбрами соединим каждую маску с теми позициями, на которых стоит не звездочка. Пусть доля V_{1} это вершины \{1,2 \ldots, n\}, соответствующие номерам позиций, а доля V_{2} это вершины \left\{u_{1}, u_{2} \ldots, u_{k}\right\}, соответствующие маскам.

Докажем, что в графе G для доли V_{1} выполнено условие леммы Холла. Предположим противное. Рассмотрим в V_{1} минимальное по включению множество A, для которого условие леммы Холла не выполнено. То есть у вершин из A количество соседей меньше, чем |A|, а для любого подмножества B множества A количество соседей у вершин из B хотя бы |B|. Отсюда следует, что у A ровно |A|-1 соседних вершин. Без ограничения общности будем считать, что A=\{1, \ldots, s+1\}, а \left\{u_{1}, \ldots, u_{s}\right\} это соседние вершины множества A. Тогда для множества \{1, \ldots, s\} выполнена лемма Холла. Пусть без ограничения общности существует паросочетание \left(1, u_{1}\right),\left(2, u_{2}\right), \ldots,\left(s, u_{s}\right). Значит, в словах u_{1}, u_{2}, \ldots, u_{s} на 1,2, \ldots, s местах соответственно стоят не звёздочки (пусть без ограничения общности там стоят нули). Рассмотрим маски u_{s+1}, \ldots, u_{k}. По построению в этих масках на местах с 1 по s стоят звёздочки. Так как каждое слово можно получить из масок ровно одним способом, то из масок u_{s+1}, \ldots, u_{k} получаются не все слова. Значит, существует множество слов \underbrace{* * \ldots * *}_{s} \alpha (на первых s позициях стоит что угодно, а затем идёт слово \alpha длины n-s ), которое нельзя получить из масок u_{s+1}, \ldots, u_{k}. Тогда слово \underbrace{1 \ldots 1}_{s} \alpha нельзя получить ни из какой маски. Противоречие.

Следовательно, для доли V_{1} выполнено условие леммы Холла. Рассмотрим любое паросочетание, покрывающее долю V_{1}. Пусть это паросочетание \left(1, u_{1}\right),\left(2, u_{2}\right), \ldots,\left(n, u_{n}\right), а в словах u_{1}, u_{2}, \ldots, u_{n} на 1,2, \ldots, n местах соответственно стоят нули. Тогда чтобы получить слово 11 \ldots 11 нам нужна ещё хотя бы одна маска. Откуда и получаем оценку на n+1.

Задача 080

В классе учится n человек. Некоторые из них образуют кружки по интересам, наборы учащихся ни в каких двух кружках не совпадают. Известно, что каждый школьник ходит хотя бы в два кружка, но также есть два кружка, в которые он не ходит. Докажите, что можно выбрать пару школьников A и B такую, что найдутся кружок, в который ходят оба школьника, кружок, в который ходит только A, кружок, в который ходит только B, и кружок, в который не ходят ни A, ни B.

Подсказка

Пусть всего школьники образовали n кружков. Обозначим максимальное число кружков, в которые ходит один школьник, через k, а минимальное — через s. Без ограничения общности можно считать, что k \leq n-s. В самом деле, пусть k>n-s. Тогда запишем каждого школьника во все кружки, в которые он не ходит, и исключим его из всех кружков, в которые он ходит.

Решение

Пусть всего школьники образовали n кружков. Обозначим максимальное число кружков, в которые ходит один школьник, через k, а минимальное — через s. Без ограничения общности можно считать, что k \leq n-s. В самом деле, пусть k>n-s. Тогда запишем каждого школьника во все кружки, в которые он не ходит, и исключим его из всех кружков, в которые он ходит. Пара искомых школьников при этом останется той же самой, но s превратится в n-k, k превратится в n-s, и неравенство n-s \leq n-(n-k), равносильное неравенству k \geq n-s, будет выполнено.

Пусть Петя — школьник, который ходит в k кружков. Посмотрим на два какие-то кружка, в которые он не ходит. Они состоят из разных наборов участников, значит, найдется школьник Вася, который ходит в один из этих кружков, а в другой не ходит.

Теперь посмотрим на все кружки, в которые Петя ходит. Вася не может ходить во все эти кружки, иначе бы он ходил в большее число кружков, чем Петя. Вася должен ходить хотя бы в один из этих кружков, иначе Вася не ходит в большее число кружков, чем количество кружков, в которые ходит Петя, что противоречит предположению k \leq n-s. Значит, Петя и Вася подходят под условие.

Задача 088

У Пети есть колода из 36 карт ( 4 масти по 9 карт в каждой). Он выбирает из неё половину карт (какие хочет) и отдаёт Васе, а вторую половину оставляет себе. Далее каждым ходом игроки по очереди выкладывают на стол по одной карте (по своему выбору, в открытом виде); начинает Петя. Если в ответ на ход Пети Вася смог выложить карту той же масти или того же достоинства, Вася зарабатывает 1 очко. Какое наибольшее количество очков он может гарантированно заработать?

Подсказка

Мы воспользуемся известной леммой Холла о сватовстве.
Лемма. Пусть есть n юношей. Известно, что для каждой группы из k юношей ( k=1,2, \ldots, n ) имеется по крайней мере k девушек, имеющих знакомых среди этой группы юношей. Тогда каждого юношу можно женить на знакомой девушке.

Решение

Мы воспользуемся известной леммой Холла о сватовстве.
Лемма. Пусть есть n юношей. Известно, что для каждой группы из k юношей ( k=1,2, \ldots, n ) имеется по крайней мере k девушек, имеющих знакомых среди этой группы юношей. Тогда каждого юношу можно женить на знакомой девушке.

Доказательство и обсуждение см., например, в статьях: М. Большаков, «Паросочетания и транспортные сети («Квант» №4 за 1970 год); А. Романов, «Задачи и теоремы о представителях» («Квант» №1 за 2015 год); М. Шевцова, «Многократная лемма Холла в задачах про мудрецов» («Квант» № 7 за 2019 год)

В терминах решения 1 объявим чёрные клетки юношами (при этом n=18 ), белые девушками, а знакомыми — клетки, находящиеся в одном ряду. Мы докажем, что для каждой группы из k юношей ( k=4,2, \ldots, 18 ) имеется по крайней мере k-3 девушки, имеющих знакомых среди этой группы юношей. Добавив трёх виртуальных девушек, знакомых со всеми юношами, мы окажемся в условиях леммы Холла. Переженив всех юношей и отбросив не более чем троих, которым достались виртуальные девушки, получим не менее 15 хороших пар.

Пусть есть группа X из k юношей (чёрных клеток). Переставим столбцы, их содержащие, влево, а строки — вниз. Пересечение этих строк и столбцов — прямоугольник площади S_{1} — содержит X, а дополнение к их объединению — прямоугольник площади S_{2}- содержит всех незнакомых с ними девушек. Значит, k \leq \min \left(S_{1}, 18\right), а количество знакомых с ними девушек не меньше 18-\min \left(S_{2}, 18\right).

Нам достаточно доказать, что 18-\min \left(S_{2}, 18\right) \geq \min \left(S_{1}, 18\right)-3, т.е. что \min \left(S_{1}, 18\right)+\min \left(S_{2}, 18\right) \leq 21.

Выражение F=\min \left(S_{1}, 18\right)+\min \left(S_{2}, 18\right) симметрично, поэтому достаточно рассмотреть случай, когда общая вершина A построенных прямоугольников лежит в верхней половине доски. Тогда S_{2} \leq 18.

Отбросим очевидный случай, когда A лежит на границе доски (тогда S_{1}=0 или S_{2}=0 ). Если S_{1}<S_{2}, то можно сдвинуть A вправо, чтобы стало S_{1}=18 (поскольку 18 делится как на 2 , так и на 3 ), при этом F=S_{1}+S_{2} не уменьшится. Если S_{1}>S_{2}, то можно сдвинуть A влево, чтобы стало S_{1}=18, при этом F=18+S_{2} увеличится.

Остался единственный случай S_{1}=18, S_{2}=3, а в нём неравенство выполнено.

Задача 094

Требуется изготовить табло из 2005 лампочек, имеющее систему выключателей. Любой выключатель должен быть присоединен к паре лампочек, и при нажатии на него должно одновременно меняться состояние двух этих лампочек (горящая выключается, негорящая — включается). Какого наименьшего числа выключателей хватит, чтобы из любого начального состояния можно было с их помощью добиться хотя бы одного из двух результатов: чтобы все лампочки горели, либо все лампочки были потушены?

Подсказка

Заметим, что четность числа горящих лампочек в любой момент такая же, как в начальном состоянии. Устроим систему из 2004 выключателей следующим образом: одна лампочка А является выделенной, и каждый выключатель подключен к ней и еще какой-то из других лампочек (разные выключатели — к разным лампочкам).

Решение

Заметим, что четность числа горящих лампочек в любой момент такая же, как в начальном состоянии. Устроим систему из 2004 выключателей следующим образом: одна лампочка А является выделенной, и каждый выключатель подключен к ней и еще какой-то из других лампочек (разные выключатели — к разным лампочкам). Если в начальном состоянии горит четное число лампочек, то погасим их, последовательно выключая их и переключая лампочку А (в итоге все лампочки, включая А, будут погашены). Если же в начальном состоянии горит нечетное число лампочек, то включим все остальные (их четное число, поэтому в итоге лампочка А тоже будет включена). Докажем, что меньшего числа выключателей не хватит. Действительно, при меньшем количестве выключателей граф лампочек несвязен, поэтому есть или хотя бы одна четная компонента связности, или хотя бы три нечетных компоненты. В четной компоненте достаточно рассмотреть такое начальное состояние, в котором горит только одна лампочка (и с ним уже ничего нельзя сделать), а на двух нечетных компонентах достаточно зажечь 0 и 1 лампочек соответственно — тогда одну из компонент можно будет только погасить, а другую — только зажечь.

Задача 096

На полке в беспорядке стоит 100 -томная энциклопедия, один из томов которой — в красном переплете. Красный том можно поменять местами с любым другим. Какого наименьшего количества таких обменов заведомо хватит, чтобы расставить тома по порядку?

Подсказка

Построим ориентированный граф, вершинами которого будут числа от 1 до 100 , а каждое из ребер связывает номер места, на котором стоит том с данным номером, с самим этим номером. Поскольку из каждой вершины этого графа выходит ровно одно ребро, и в каждую его вершину входит ровно одно ребро, все его вершины и ребра разбиваются на непересекающиеся ориентированные циклы.

Решение

Ответ: 148.

Решение. Пример на 148. Построим ориентированный граф, вершинами которого будут числа от 1 до 100 , а каждое из ребер связывает номер места, на котором стоит том с данным номером, с самим этим номером. Поскольку из каждой вершины этого графа выходит ровно одно ребро, и в каждую его вершину входит ровно одно ребро, все его вершины и ребра разбиваются на непересекающиеся ориентированные циклы. Цикл, в который входит красный том, назовем особым, прочие — обычными. Возьмем любой обычный цикл a \rightarrow b \rightarrow c \rightarrow \ldots \rightarrow d \rightarrow a и добавим в него красный том (пусть его номер равен r ): a \rightarrow r \rightarrow b \rightarrow c \rightarrow \ldots \rightarrow d \rightarrow a. Затем последовательно поменяем местами красный том со всеми остальными элементами получившегося цикла. В итоге все элементы исходного обычного цикла встанут на предписанные им места, а красный том вернется на исходное место. Проделаем описанную процедуру со всеми обычными циклами длины, не меньшей 2 , а напоследок «прокрутим» особый цикл, после чего все тома окажутся на своих местах, т.е. будут идти в порядке возрастания. При этом на приведение в порядок каждого цикла длины n, кроме особого, у нас ушла n+1 перестановка, а на особый цикл —n-1 перестановка, а всего — 100+k-2 перестановки, где k — число циклов длины не меньше 2 . Поскольку циклов длины 2 и больше не более 50, мы совершили не больше 148 перестановок. Оценка. Пусть получилось 50 циклов длины 2. На приведение в порядок каждого обычного цикла нужно минимум 3 перестановки: убрать один том, поставить на его место другой и поставить на место другого первый. Еще одна перестановка нужна на особый цикл. Итого 49 \times 3+1=148.