Задача 094

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

Подсказка

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

Решение

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

Задача 095

На турнир приехало 100 человек. Из любых пяти из них можно по крайней мере двумя способами выбрать трех попарно знакомых. Докажите, что среди них есть по крайней мере 4850 пар знакомых.

Подсказка

Рассмотрим граф, вершинами которого являются участники турнира, а ребрами — пары участников, незнакомых между собой. Если в этом графе есть треугольник A B C, то в любой пятерке A B C D E участники D и E должны быть знакомы между собой, и каждый из них должен быть знаком с двоими из тройки A B C.

Решение

Рассмотрим граф, вершинами которого являются участники турнира, а ребрами — пары участников, незнакомых между собой. Если в этом графе есть треугольник A B C, то в любой пятерке A B C D E участники D и E должны быть знакомы между собой, и каждый из них должен быть знаком с двоими из тройки A B C. Тогда пар знакомых получается не меньше, чем 97 \times 96 / 2+2 \times 97=97 \times 50=4850. Дальше будем считать, что треугольников нет. Пусть есть цикл A B C D длины 4. Добавляя сюда произвольного участника E, находим, что он дружит со всеми участниками из этого цикла, A дружит с C и B дружить с D. Таким образом, каждый цикл длины 4 в нашем графе является компонентой связности. Заметим далее, что в нашем графе нет незамкнутых путей длины 4: если есть такой путь A B C D E, то в пятерке A B C D E нет двух троек попарно знакомых. Поэтому нет и циклов длины больше 4 , то есть каждая компонента связности нашего графа — либо цикл длины 4, либо дерево. Но в такой ситуации ребер у этого графа не больше, чем вершин, то есть не больше 100. Соответственно, пар знакомых не меньше, чем 100 \times 99 / 2-100=4850.

Задача 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.

Задача 099

Дан связный граф на 2009 вершинах. Докажите, что в нем можно выделить 2008 ребер и расставить на них стрелки так, чтобы для любых двух вершин, соединенных ребром в исходном графе, из одной из них в другую можно было бы пройти по стрелкам.

Подсказка

Отметим в нашем графе G любую вершину a и построим дерево поиска в глубину T с корнем a.

Решение

Отметим в нашем графе G любую вершину a и построим дерево поиска в глубину T с корнем a.

Пронумеруем вершину a числом 0 и будем добавлять в дерево и нумеровать вершины по следующему принципу: если в дереве есть вершины с номерами от 1 до k, то рассмотрим вершину с наибольшим номером, из которой выходит хотя бы одно ребро в вершину, не принадлежащую уже построенному дереву, добавим любое из таких рёбер в дерево, и новой вершине присвоим номер k+1. Все ребра дерева T ориентируем от меньшего номера к большему.

Пусть t(x) — номер вершины x при построении дерева T. Докажем, что все требования задачи выполняются. Очевидно, в остовном дереве графа на 2009 вершинах как раз 2008 ребер, так что мы поставили 2008 стрелочек. Пусть u v — ребро исходного графа G, причем t(u)<t(v). Если u v входит в T, всё в порядке. В противном случае вершина v подвешена в T к вершине v_{1} \neq u. Так как в графе G вершина v смежна с u, то по построению дерева t\left(v_{1}\right)>t(u), и t(v)>t\left(v_{1}\right). Рассмотрим момент, когда добавлялась вершина v_{1}. Так как в этот момент в дереве еще нет смежной с u вершины v, то по построению вершина v_{1} подвешена в T к вершине v_{2}, где t\left(v_{1}\right)>t\left(v_{2}\right) \geq t(u). И так далее, пока очередная вершина v_{m} не окажется совпадающей с u (это случится, потому что номера t\left(v_{i}\right) монотонно убывают, и все они не меньше, чем t(u) ). Искомый путь u=v_{m} \rightarrow v_{m-1} \rightarrow \ldots \rightarrow v_{1} \rightarrow v построен.

Задача 100

В графе 80 вершин и 20 ребер. Разрешается взять любую вершину, стереть все выходящие из нее ребра и соединить ее со всеми вершинами, с которыми она была не соединена. Докажите, что такими операциями можно получить граф, в котором не менее 900 треугольников.

Подсказка

Пусть K — множество концов этих 20 ребер, и |K|=k. Предположим, что k \leq 35. Тогда рассмотрим 80-k \geq 45 остальных вершин и применим к каждой из них операцию, описанную в условии задачи (порядок операций не имеет значения).

Решение

Пусть K — множество концов этих 20 ребер, и |K|=k. Предположим, что k \leq 35. Тогда рассмотрим 80-k \geq 45 остальных вершин и применим к каждой из них операцию, описанную в условии задачи (порядок операций не имеет значения). В результате нетрудно понять, что для каждого из наших 20 ребер появится 80-k треугольников с этим ребром (и каждой из не входящих в K вершин). Итого мы имеем 20(80-k) \geq 20 \cdot 45=900 треугольников.

Пусть k \geq 36. Всего у 20 ребер 40 концов и легко понять, что есть не менее 12 ребер, концы которых не совпадают с другими концами наших 20 ребер. Выберем 5 таких ребер — пусть это ребра a_{1} b_{1}, \ldots, a_{5} b_{5}. Обозначим через S множество, состоящие из вершин a_{1}, \ldots, a_{5}, b 1, \ldots b 5 и произвольных 40 вершин не входящих в K. Применим операцию ко всем 50 вершинам множества S. Тогда на каждом из ребер a_{1} b_{1}, \ldots, a_{5} b_{5} образуется по 30 треугольников (со всеми вершинами, не входящими в S ), а на каждом из 15 оставшихся ребер — по 50 треугольников (со всеми вершинами множества S ). Итого получается 5 \cdot 30+15 \cdot 50=150+750=900 треугольников.