Дано натуральное число п. Назовём словом последовательность из
нулей и единиц, а маской — последовательность из п нулей, единии, и звёздочек. Слово соответствует маске, если оно получено из неё заменой звёздочек на нули и единицы. Рассмотрим набор масок
, удовлетворяющий следующим двум условиям:
(1) каждое слово соответствует ровно одной маске, и
(2) для каждой из п позиций найдётся маска из
, в которой в этой позиции стоит не звездочка.
Найдите наименьшее возможное количество масок в таком наборе
.
Подсказка
Рассмотрим двудольный граф
, в котором вершинами одной из долей будут номера позиций в слове длины
, вершинами второй из долей будут маски, а рёбрами соединим каждую маску с теми позициями, на которых стоит не звездочка. Пусть доля
это вершины
, соответствующие номерам позиций, а доля
это вершины
, соответствующие маскам.
Решение
Рассмотрим двудольный граф
, в котором вершинами одной из долей будут номера позиций в слове длины
, вершинами второй из долей будут маски, а рёбрами соединим каждую маску с теми позициями, на которых стоит не звездочка. Пусть доля
это вершины
, соответствующие номерам позиций, а доля
это вершины
, соответствующие маскам.
Докажем, что в графе
для доли
выполнено условие леммы Холла. Предположим противное. Рассмотрим в
минимальное по включению множество
, для которого условие леммы Холла не выполнено. То есть у вершин из
количество соседей меньше, чем
, а для любого подмножества
множества
количество соседей у вершин из
хотя бы
. Отсюда следует, что у
ровно
соседних вершин. Без ограничения общности будем считать, что
, а
это соседние вершины множества
. Тогда для множества
выполнена лемма Холла. Пусть без ограничения общности существует паросочетание
. Значит, в словах
,
на
местах соответственно стоят не звёздочки (пусть без ограничения общности там стоят нули). Рассмотрим маски
. По построению в этих масках на местах с 1 по
стоят звёздочки. Так как каждое слово можно получить из масок ровно одним способом, то из масок
получаются не все слова. Значит, существует множество слов
(на первых
позициях стоит что угодно, а затем идёт слово
длины
), которое нельзя получить из масок
. Тогда слово
нельзя получить ни из какой маски. Противоречие.
Следовательно, для доли
выполнено условие леммы Холла. Рассмотрим любое паросочетание, покрывающее долю
. Пусть это паросочетание
, а в словах
на
местах соответственно стоят нули. Тогда чтобы получить слово
нам нужна ещё хотя бы одна маска. Откуда и получаем оценку на
.