Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела графы и турниры
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#100483

Пусть A,B  — два множества вершин в ориентированном (возможно, с кратными ребрами и петлями) конечном графе G.  Назовем множество C ⊂ A  хорошим, если из C  в B  существует |C  | непересекающихся по вершинам путей. Докажите, что все максимальные по включению хорошие множества содержат одинаковое количество элементов.

Подсказки к задаче

Подсказка 1

Будем идти от противного. Пусть найдутся такие множества C и D ∈A, что |C| < |D|. Пусть P и Q — множество непересекающихся путей из C и D соответственно в B. P и Q состоят из путей P_i и Q_i. Попробуйте доказать, что путь Q_i не может не пересекать пути из P.

Подсказка 2

Теперь будем пытаться перестраивать пути так, чтоб в D образовалась вершина, путь из которой не пересекает пути из C. Давайте рассмотрим путь Q_i, конец которого не будет концом путей из P. А почему такая есть?

Подсказка 3

Правильно! В силу того, что |C| < |D|. Будем рассматривать пути P_j такие, что общая вершина P_j и Q_i была самой близкой к концу Q_i. И будем менять часть пути P_j на часть пути из Q_i, которая идет после общей вершины. Что тогда останется верным про пути из P?

Подсказка 4

Верно! Они до сих пор не пересекаются! Теперь хочется доказать, что этот алгоритм закончиться как нам надо. Для этого рассмотрим две величины. S_P(n) — число всех ребер в путях из P на шаге n данного алгоритма. S_Q(n) — число общих ребер в путях из P и Q на шаге n данного алгоритма. Какую еще величину (от этих двух) стоит рассмотреть?

Подсказка 5

Ага! Рассмотрим S(n) равной разности S_p(n) и S_q(n). Что тогда можно сказать просто по определению S_p(n) и S_q(n) про S(n)?

Подсказка 6

Точно! S(n) ≥ 0. Теперь вспомним, что делает наш алгоритм и что мы хотим доказать, что он закончится. Что еще можно сказать про S(n)?

Подсказка 7

Верно! S(n) > S(n + 1). А значит наш алгоритм придет к тому, что S(n) = 0. Осталось только понять, что это значит.

Показать доказательство

Пусть существуют два хороших хороших множества C,D ∈A,  которые содержат различное количество элементов. Без ограничений общности считаем, что

|C|<|D|

Покажем, что C  не является максимальным по включению.

Действительно, пусть P = {P }|C|
     i i=1  и Q = {Q }|D|
      ii=1  — множество непересекающихся путей из C  и D  соответственно в B.  Если существует путь Q ,
 i  который не пересекается с любым путем из P,  то мы можем добавить его начало в C,  следовательно, C  не является максимальным по включению. Далее считаем, что все пути из Q  пересекаются какими-либо путями из P.

Рассмотрим следующий алгоритм перестройки путей и покажем, что рано или поздно в D  образуется вершина, путь из которой не пересекается с любым из путей из вершин C.  Поскольку |C |< |D| найдется путь Qi,  конец которого не является концом никакого пути из P,  и Qi  пересекается с некоторым подмножеством путей из P.  Пусть Pj  тот из них, для которого общая вершина с Qi  наиболее близка к концу Qi  (рис.1,  ребра Pj  покрашены в красный, Qi  — в синий). Заменим часть пути Pj  на часть пути из Qi,  которая идет после общей вершины. Тогда в P  по прежнему никакие два пути не пересекаются (рис.2).

PIC

Рис.1

PIC

Рис.2

Пусть SP (n)  — число всех ребер в путях из P  на шаге n  данного алгоритма, SQ (n)  — число общих ребер в путях из P  и Q  на шаге n  данного алгоритма. Рассмотрим величину

S(n)= SP(n)− SQ(n)

на шаге n  данного алгоритма. Поскольку количество общих ребер увеличивается на число большее, чем количество ребер в перестраиваемом пути

S(n +1)< S(n)

Таким образом, мы можем совершать шаг алгоритма каждый раз, пока существует путь из Q,  который пересекается с каким-то путем из P  и не имеет общий конец с любым путем в Q,  но SP(n)− SQ (n)≥ 0  по определению, то есть рано или поздно все пути из Q  таковы, что удовлетворяют ровно одному из условий

1.

имеют общий конец с каким-то путем из P

2.

не имеют общих вершин с любым путем из P,

но все пути Q  не могут удовлетворять 1,  поскольку |C|<|D|,  поэтому найдется путь, который удовлетворяет 2,  — его начало можно добавить в C,  а, значит, C  не является максимальным по включению.

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!