Тема ПитерГор (Санкт-Петербургская олимпиада)

Комбинаторика на Питергоре

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

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

Задача 21#70786Максимум баллов за задание: 7

В стране Центумии некоторые пары городов соединены дорогами, причем из каждого города выходит ровно 100  дорог. Пучком называется набор из 10  дорог, выходящих из одного города. Докажите, что все дороги можно разбить на несколько пучков.

Источники: СпбОШ - 2015, задача 11.6(см. www.pdmi.ras.ru)

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

Подсказка 1

Очевидно, что задача на граф. Вершины — города, рёбра — дороги. Просто пытаться фиксировать пучки и искать следующие — плохая затея, мы вообще не будем знать, как ведёт себя граф в таком процессе. Нужно структурировать наш граф. Как мы можем это сделать, зная, что степень каждой вершины хотя бы 2?

Подсказка 2

Это намекает на циклы. Но будем действовать по порядку. Разобьём граф на компоненты связности. В каждой компоненте выделим наибольший по длине простой цикл. Удалим все входящие в них рёбра, запомним эти циклы. У каких-то вершин степень уменьшилась ровно на 2. Хм, интересно, может продолжить делать что-то подобное, пока не придём в "конечную позицию"?

Подсказка 3

Действительно! После этого снова разобьём граф на компоненты (могли появиться новые). Снова в каждой выделим цикл и т.д., пока циклы не закончатся. Интересно, как выглядит это конечная позиция?

Подсказка 4

Степень каждой вершины всегда кратна 2. Значит, в каждой компоненте всегда есть цикл, если есть рёбра (осознайте это). То есть в конце рёбер не останется. Какой из этого вывод можно сделать?

Подсказка 5

Все рёбра графа разбились на непересекающиеся простые циклы. Граф стал гораздо понятнее, через каждую вершину проходит ровно 50 циклов (осознайте это). Но пока не особо понятно, как выбрать из 100 рёбер вершины 10 пучков. Если выбирать произвольно, можно получить пересечения двух пучков из смежных вершин. Хочется, чтобы эти рёбра пучков как бы "смотрели в одну сторону", тогда они точно не совпадут для смежных вершин. Как бы это сделать...?

Подсказка 6

Идея! А давайте ориентируем наши циклы произвольным образом. Тогда из каждой вершины выходит по 50 рёбер и в каждую входит по 50 рёбер. А вот теперь осталось внимательно посмотреть на выходящие рёбра и понять, что если разбить их на пучки, то вы докажите утверждение задачи. Мы в вас верим! Успехов!

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

Рассмотрим граф G  , в котором вершины — это города, а рёбра — дороги. Степени всех вершин этого графа равны 100.  Разобьем все рёбра графа G  на реберно непересекающиеся циклы. В каждом цикле зададим произвольно порядок обхода и ориентируем рёбра в направлении обхода цикла. Тогда в каждую вершину G  входит 50  ребер и из каждой вершины выходит тоже 50  ребер. Разобьем все ребра, выходящие из каждой вершины, на 5 пучков. Тогда все рёбра графа G  разобьются на пучки.

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

Задача 22#82766Максимум баллов за задание: 7

В межгалактической империи 102015  планет, любые две из которых соединены двусторонней прямой космической линией. Этими линиями владеют 2015  транспортных компаний. Император хочет закрыть k  компаний так, чтобы, пользуясь только рейсами оставшихся, можно было бы с любой планеты добраться до любой другой. При каком наибольшем k  он гарантированно сможет осуществить свой план?

Показать ответ и решение

Покажем сначала, что всегда найдутся 1008  компаний, с помощью которых можно добраться от любой планеты до любой другой. Выберем произвольно 1008  компаний, назовем их стремительными, а остальные — надежными. Предположим, что посредством стремительных компаний нельзя добраться, скажем, с Венеры на Сатурн. Это значит, что Венеру и Сатурн соединяет рейс надежной компании, и любая другая планета соединена рейсом надежной компании либо с Венерой, либо с Сатурном. Отсюда следует, что с любой планеты до любой можно добраться рейсами надежных компаний (через Венеру и Сатурн). Добавляя к надежным компаниям любую стремительную, получаем требуемые 1008  компаний. Теперь приведем пример, показывающий, что k= 1008  компаний закрыть с выполнением требований удастся не всегда. Для каждого множества U  из 1008 авиакомпаний может найтись такая планета f(U),  на которую летают только компании из U.  Планет для выполнения такого требования нужно не более чем  2015
2  (общее число подмножеств множества компаний), а у нас их больше. При этом для любых двух планет f(U),f(V)  их можно соединить рейсом компании из U ∩V  — это множество непусто. Как соединяются другие пары планет, неважно.Теперь при закрытии любого множества U  из 1008  компаний планета f(U)  становится изолирована от остальной галактики.

Ответ:

 k =1007

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

Задача 23#69992Максимум баллов за задание: 7

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

Показать ответ и решение

Покажем, что 141  прямой покрыть узлы можно. Проекция салфетки на ось OX  — это отрезок, по длине не провосходящий диагонали салфетки, то есть   √ -
100 2.  Рассмотрим вертикальные линии сетки, пересекающие проекцию салфетки. Таких прямых не больше, чем   √ -
[100 2]+ 1= 142.  Если их оказалось 141  или меньше , цель достигнуты. Если же их ровно 142,  то самая левая и самая правая из них содержат ровно по одному узлу, накрытому салфеткой, этот факт доказан в лемме ниже. Заменим эти две прямые на одну прямую, проходящую через упомянутые узлы. В результате все нужные точки покрыты 141  прямой.

PIC

_________________________________________________________________________________________________________________________________________________________________________________

Лемма. Если салфетку пересекают 142  вертикальные прямые, то самая левая и самая правая из них содержат ровно по одному узлу, накрытому салфеткой.

Доказательство. Действительно, пусть проекции двух смежных сторон салфетки на горизонтальную прямую равны a  и b,  a≥ b.  Допустим, что на одной из крайних прямых оказалось два или более узла. Тогда эта прямая отсекает от салфетки прямоугольный треугольник δ1  с гипотенузой, не меньше 1.  Высота этого треугольника не превосходит   √ -
100  2− 141.  Треугольник Δ1  подобен треугольнику Δ2,  который отсекает от салфетки прямая, проходящая через одну из вершин квадрата – верхнюю или нижнюю в зависимости от того, у какой из них проекция правее. Гипотенуза этого треугольника не превосходит диагонали квадрата, то есть     -
100√2,  а высота равна a  и b,  и значит, не меньше b.  Нам известно, что a +b≥ 141.  Тогда

(a− b)2 = 2(a2+ b2)− (a+b)2 ≤ 20000− 1412 = 119,

т.е. a − b< 11  и b= ((a+b)−2(a−b))> 65.  Записывая пропорциональность высот и гипотенуз в подобных треугольниках Δ1  и Δ2,  получаем          √-
16005√2 < 100-2−1-141.  С другой стороны,                       √ -
10605√2 > 16543 = 511 > 0,45> 100 2− 141  — противоречие.

PIC

_________________________________________________________________________________________________________________________________________________________________________________

Докажем теперь, что не всегда возможно провести 140  прямых так, чтобы они проходили через все узлы. Построим контрпример. Возьмём координатную плоскость и расположим квадрат, диагональ которого расположена на оси 0x  от точки (0;0)  до (141;0).  Его сторона равна 14√1< 100,
 2  поэтому его можно накрыть салфеткой со стороной 100.  Проверим, что узлы, принадлежащие квадрату, нельзя покрыть 140  прямыми. На диагонали расположено 142  узла. Если диагональ не лежит ни на одной из проведённых прямых, то эти узлы должны покрываться различными прямыми, что невозможно, поскольку прямых всего 140.  Поэтому прямая y =0  обязательно проведена. Теперь докажем по индукции, что при 0≤k ≤69  проведены прямые y =±k.  База k= 0  уже проверена. Установим переход от k − 1  к k.  По предположению индукции уже проведены прямые

y = 0, y =±1, ..., y = ±(k − 1)

(всего 2k − 1  прямая). Рассмотрим очередную прямую y = k,  на ней лежит 142− 2k  узлов(на каждом шаге их количество уменьшается на 2). Если она не проведена, то эти узлы покрыты различными прямыми, что невозможно, поскольку нам осталось провести 140− (2k− 1)= 141− 2k  прямых. Значит, она проведена. Аналогично должна быть проведена и прямая y =− k.  Итак мы установили, что заведомо проведено 2⋅69+ 1= 139  прямых. Но при этом точки (70;±70)  и (71;±70)  всё ещё остались непокрытыми. Они являются вершинами прямоугольника и поэтому не могут быть покрыты одной прямой.

PIC

Ответ:

 141

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

Задача 24#70844Максимум баллов за задание: 7

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

PIC

Министерство транспорта каждый день выбирает какой-нибудь идеальный набор дорог и полностью разрушает их. Новых дорог министерство не строит. Докажите, что не более чем через 199  таких операций в стране вообще не останется дорог.

Источники: СпбОШ - 2014, задача 11.2(см. www.pdmi.ras.ru)

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

Подсказка 1

Когда в условии много всяких фактов/необычное условие, полезно порассуждать от противного. Попробуйте тут тоже)

Подсказка 2

Предположите, что дорога не была разрушена за 198 дней. Что можно сказать про остальные дороги?

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

Рассмотрим дорогу между городами A  и B.  Докажем, что не более чем за 199  дней она будет разрушена. Предположим, что она не была разрушена за 198  дней. Тогда каждый день разрушалась хотя бы одна дорога, выходящая из города A,  или хотя бы одна дорога, выходящая из города B  (в противном случае к разрушаемому набору можно было бы добавить дорогу AB  и, значит, он был не идеальным). Таким образом, за 198  дней будут разрушены все дороги, выходящие из городов A  и B,  кроме дороги AB.  Но тогда дорога AB  заведомо попадёт в следующий идеальный набор и будет разрушена на 199  -й день.
Итак, мы про каждую дорогу доказали, что по истечении 199  дней она будет разрушена. Поэтому через 199  дней в стране не останется ни одной дороги.

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

Задача 25#71158Максимум баллов за задание: 7

В каждой клетке квадрата n× n  стоит ребёнок. Каждый из них смотрит в сторону одной из соседних по стороне клеток(никто не смотрит за пределы квадрата) и видит либо ухо, либо затылок ребёнка, стоящего в этой клетке. Какое наименьшее число детей может видеть ухо?

Источники: СпбОШ - 2014, задача 11.6(см. www.pdmi.ras.ru)

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

Подсказка 1

В таких задачках иногда полезно просто порассуждать взяв произвольного ребенка.

Подсказка 2

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

Подсказка 3

В цепочке, где самый первый ребёнок видит чьё-то ухо — не более n-1 ребенка. Что можно сказать о количестве таких цепочек?

Подсказка 4

Цепочек хотя-бы n+2. Приведите пример.

Показать ответ и решение

Пример.

Два возможных примера показаны на рисунке.

PIC

Оценка.
Решение 1.
Рассмотрим произвольного ребёнка. Если он не видит уха, то он смотрит в чей-то затылок. Тогда стоящий перед ним либо видит чьё-то ухо, либо также смотрит в затылок. Таким образом, мы получаем цепочку из стоящих в ряд детей, в которой самый первый ребёнок видит чьё-то ухо. Заметим, что в этой цепочке не более n− 1  ребёнка. Поскольку общее количество детей равно n2,  то цепочек не меньше чем  2
nn−1 = n+ 1+ n1−1.  Значит, их хотя бы n+ 2.  Стало быть, как минимум n+ 2  ребёнка видят чьё-то ухо.
Решение 2.
Рассмотрим произвольного ребёнка. Пусть для определённости он смотрит "вправо"(см. рис). Если он не видит уха, то он смотрит в чей-то затылок. Тогда стоящий перед ним также смотрит вправо и т.д., но самый правый ребёнок в этой строке должен смотреть вверх или вниз. Поэтому в этой строке есть хотя бы один ребёнок, который видит чьё-то ухо. Таким образом, если в какой-то строке есть ребёнок, смотрящий “горизонтально”, то в этой строке есть ребёнок, который видит ухо.

PIC

Если в каждой строке есть смотрящий горизонтально ребёнок, то в ней найдётся смотрящий горизонтально ребёнок, который видит ухо. Но все дети, чьи уши кто-нибудь видит, не могут стоять в одном столбце, поскольку в этом случае все они смотрят вертикально, что невозможно. Поэтому они стоят хотя бы в двух столбцах. Значит, в каждом из этих столбцов тоже хотя бы один ребёнок видит ухо. Таким образом, есть n  смотрящих горизонтально детей, которые видят ухо, и ещё не менее двух смотрящих вертикально детей, которые также видят ухо. Стало быть, детей, видящих ухо не менее чем n+ 2.

PIC

Рассмотрим теперь случай, когда в какой-то строке нет детей, смотрящих "горизонтально". Следовательно, они все смотрят "вертикально"и поворотом доски на 90∘ этот случай сводится к уже рассмотренному.

Ответ:

Наименьшее число детей, которые могут видеть ухо, равно n+ 2

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

Задача 26#77984Максимум баллов за задание: 7

На плоскости проведено 102  прямых и отмечены все точки их пересечения. Может ли на какой-нибудь окружности оказаться ровно  105  отмеченных точек?

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

Подсказка 1

Давайте попробуем посчитать точки. Да-да, в этой задаче точки нужно считать двумя способами.

Подсказка 2

С одной стороны каждая прямая пересекает окружность максимум в двух точках => всего точек будет не более 204, с другой стороны каждую точку мы посчитали как минимум 2 раза (так как это точки пересечения прямых).

Показать ответ и решение

Пусть на какой-либо окружности ω  лежит N  точек пересечения. Тогда каждая прямая пересекает ω  не более чем в двух точках. При этом каждую отмеченную точку мы считаем по крайней мере 2  раза, так как через нее проходят две (а может быть и больше) прямые. И из этого следует, что N ≤ 102.

Итак, ни на какой окружности не может быть больше 102  точек пересечения. Для полноты картины отметим, что если проведенные прямые суть стороны 102  -угольника, вписанного в окружность ω,  то N = 102.

Ответ:

Не может

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

Задача 27#79336Максимум баллов за задание: 7

В тайном обществе 2020  членов, и у каждого есть счет в банке (на счету целое число рублей, которое может быть отрицательным). Время от времени один из членов общества переводит со своего счета на счет каждого из своих друзей, состоящих в обществе, по 1  рублю. Известно, что с помощью цепочки таких переводов они могут перераспределить имеющиеся на счетах средства произвольным образом. Докажите, что в этом обществе ровно 2019  пар друзей.

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

Подсказка 1

Очевидно, задача на граф. Тогда пусть вершины — члены общества, рёбра — дружбы. Сделаем замечание, что граф связный, иначе противоречие с условием. То есть мы хотим доказать, что граф на 2020 вершинах связный и в нём 2019 рёбер. Что же это значит?

Подсказка 2

Хотим доказать, что граф — дерево. А какое основное свойство есть у графов-деревьев?

Подсказка 3

Точно! В них нет циклов, то есть мы хотим доказать, что в графе нет циклов. Доказывать прямо, что их нет сложно и непонятно, поэтому надо предположить противное...

Подсказка 4

Пусть есть цикл A₁ - A₂ - ... - Aₙ. Как бы нам применить условие? Хотим предъявить какой-то набор весов в вершинах (счета в банке) такой, что при наличии цикла его бы нельзя было получить из изначального. То есть хотим следить за каким-то процессом передачи. Но если будет слишком много различий с изначальным, то за ними будет слишком трудно уследить (граф может вести себя почти как угодно). Значит, хотим минимизировать различия. Итого, что мы хотим рассмотреть?

Подсказка 5

Минимально может быть 2 различия. Рассмотрим такой набор весов, что везде он остался прежним, а у A₁ уменьшился на 1 и у А₂ увеличился на 1. Для удобства, пусть А₁ = А, А₂ = B. По условию, существует такой алгоритм переводов, который переводит изначальную расстановку в эту. Подумаем, важен ли нам порядок переводов?

Подсказка 6

Разумеется, нет. Подумаем теперь вот о чём. Будет ли толк, если все сделают перевод ровно один раз?

Подсказка 7

Осознайте, что нет. Тогда если в нашем алгоритме в каждой вершине было сделано хотя бы по одному переводу, можно убрать из каждой вершины по переводу и ничего не изменится. Будем делать так, пока не найдутся вершины без переводов, назовём их нулевыми. Поизучаем эти нулевые вершины.

Подсказка 8

Осознайте, что A — ненулевая. Пусть C — произвольная нулевая вершина. Поисследуйте нулевые вершины и выведи их взаимосвязь с остальными вершинами.

Подсказка 9

Несложно заметить, что если вершина (не B) нулевая, то все её соседи тоже нулевые (докажите это). Какой вывод тогда можно сделать про вершину B?

Подсказка 10

Именно! B - тоже нулевая вершина. То есть все соседи B, кроме А — нулевые, при этом вес B увеличился на 1. Что это значит?

Подсказка 11

Поймите, что A — ненулевая. При этом B — нулевая и на ребре AB построен цикл. Не кажется ли вам это подозрительным?...

Подсказка 12

Выведите из этих фактов, что А — нулевая и красиво закончите решение. Успехов!

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

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

Предположим противное: пусть вершины A1,A2,...,An  образуют цикл. Для краткости введем обозначения A =A1  и B = A2.  По условию несколькими переводами можно переместить 1 рубль из A  в B,  т. е. добиться того, что счет вершины A  уменьшится на 1,  вершины B  — увеличится на 1,  а счета остальных вершин не изменятся. Рассмотрим такой способ, в котором суммарное количество переводов — наименьшее из возможных. Ясно, что порядок переводов не важен: результат определяется тем, сколько переводов сделано из каждой вершины.

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

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

В результате всех переводов счет в вершине B  должен увеличиться на 1  и это увеличение уже достигается переводом из A.  Значит, все остальные соседи вершины B  должны быть нулевыми. В частности, вершина A3  — нулевая. Поскольку A3  отлична от B,  все ее соседи тоже нулевые, в том числе A4.  Применяя это рассуждение к вершинам цикла по очереди, в итоге получаем, что и вершина A  должна быть нулевой. Противоречие.

Полученное противоречие доказывает, что в графе нет циклов, следовательно, он является деревом. В любом дереве количество ребер на 1  меньше, чем количество вершин, следовательно, в нашем графе ровно 2010  ребер, что и требовалось.

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