Тема . Комбинаторная геометрия

Пересечение отрезков и прямых

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

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

Задача 1#67944

∙  ∙  ∙  ∙ ∙  ∙

∙  ∙  ∙  ∙ ∙  ∙

Есть два ряда — верхний и нижний, каждый из 6 точек (см. рисунок). Проводят отрезки с концами в противоположных рядах так, чтобы из каждой точки выходил ровно один отрезок. Сколько существует способов провести отрезки, чтобы среди всех пар отрезков было ровно 7 пар пересекающихся отрезков?

Источники: Ломоносов-2023, 10.8 (см. olymp.msu.ru)

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

Подсказка 1

В таких задачах полезно посмотреть на случаи поменьше, с меньшим количеством отрезков и необходимых пересечений

Подсказка 2

Когда два отрезка пересекаются? Когда начало первого левее, чем начало второго, а конец первого правее, чем конец второго

Подсказка 3

Давайте посмотрим, что меняется, когда мы добавляем еще один отрезок.

Подсказка 4

Мы можем поставить второй конец в самую правую точку. Тогда у нас останется k пересечений.

Подсказка 5

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

Подсказка 6

Общая формула будет иметь вид

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

Пусть в каждом ряду по n  точек. Способ соединить точки можно задать перестановкой n  чисел, {i ,i ,...,i }:
  1 2    n  первая точка верхнего ряда соединяется с точкой под номером i1,  вторая — с i2,  и так далее. Значит, всего возможных рисунков будет n!.

Теперь берём пару отрезков. Пусть это отрезки с концами a,ia  и b,ib,  считаем a< b.  В каком случае они пересекается? В том, когда ia > ib.  Учитывая, что a,b  могут быть любой парой, замечаем следующее: общее количество пересечений отрезков равно количеству случаев, когда в перестановке большее число стоит раньше меньшего (не обязательно по соседству). Как сказали бы старшие товарищи, число пересечений равно числу инверсий в перестановке. Так и будем говорить дальше.

Например, 12345  — нет инверсий и нет пересечений, 21345  — одна инверсия (2  и 1),  43152  6  инверсий (4  и 3,  4  и 1,  4  и 2,  3  и 1,  3  и 2,  5  и 2).  Наибольшее количество инверсий будет, если написать числа задом наперёд: 54321,  какие два числа не выбери — большее будет стоять раньше. То есть инверсий в последнем примере 10,  а в общем случае — C2n.

Как посчитать число перестановок с заданным количеством инверсий? Подойдём к задаче индуктивно. В фигурных скобках будем указывать различные перестановки, а в квадратных перечислим количества перестановок, имеющих соответственно 0,1,...,C2n  инверсий.

Итак, единственный элемент можно расположить единственным образом, и у нас есть одна перестановка с нулевым числом инверсий.

{1}; [1]

Добавляем двойку — её можно добавить в начало и в конец имеющейся перестановки {1}.  Одна из полученных перестановок будет без инверсий, другая — с одной инверсией.

  {◟1◝2◜}◞ ,  {◟2◝1}◜◞  ; [1,1]
0 инверсий1инверсия

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

{◟12◝◜3}◞,{◟2 ◝13◜} ◞,{◟13 ◝2◜} ◞,{2◟3 ◝1◜} ◞,{◟31◝◜2}◞,{◟3 ◝21◜} ◞, [1,2,2,1]
 0+0  1+0   0+1  1+1  0+2  1+2

Так же будет происходить добавление нового числа n  в общем случае: число n  можно поставить на любое место, и в зависимости от места к инверсиям добавится + 0,+1,+2,...,+(n − 1)  штук. То есть на новом шаге перестановка с l  инверсиями превращается в n  перестановок с l+0,l+1,l+2,...,l+(n− 1)  инверсиями соответственно.

Посмотрим, какие числа получались в квадратных скобках. Напишем эти последовательности одну под другой:

pict

Здесь в n- й  строке (нумерация начинается с 1  ) приводятся числа Pkn  для k =0,1,...,Ckn,  равные количеству перестановок из n  чисел с k  инверсиями.

Вспоминая, как происходит добавление нового n,  получим

Pnk= Pkn−1 + Pkn−−11 + Pkn−−21+ ⋅⋅⋅+  Pkn−−n1+1
     ◟+ ◝0◜и ◞нв. +◟1 ◝◜ин ◞в. +◟2 ◝◜ин◞в. +◟(n−◝1◜)и◞нв.

Действительно, Pkn− 1  — количество перестановок из (n-1) чисел, в которых уже есть k  инверсий. В них мы вынуждены поставить новое n  на последнее место (+0  инверсий). Раз мы ставим n  на единственно возможное место, количество перестановок не изменится.

Далее, Pk−1
 n−1  — количество перестановок с (k− 1)  инверсией, и, чтобы добавить недостающую, мы вынуждены ставить n  на предпоследнее место (+ 1  инверсия).

Продолжаем так вплоть до P k− n+1,
 n−1  потому что добавить больше (n− 1)  инверсии нельзя. Всего получается n  слагаемых. Из других перестановок предыдущей строки мы ничего нового получить не сможем.

Заметим, что P−k =0,
 n  так как не бывает перестановок с отрицательным числом инверсий, как и не может быть перестановок со слишком большим (больше чем C2
 n  ) количеством инверсий.

Итак, имеем следующий способ построения коллекции Pk.
 n

Первая строчка:

...0 0◟◝◜0◞0 0 0 1 0 0 0 0 0 0...
    −→

По строчке ползёт «окно» шириной 2.  Попавшие в «окно» числа складываются и выписываются в следующую (2-ю) строку:

...0(◟0◝ 0◜)◞1 0 0 0 ... ...0 0(0◟◝◜1)◞0 0 0 ... ...0 0 0(◟1◝ 0◜)◞0 0 ... ...0 0 0 1(◟0◝ 0◜)◞0 ...
    =0               =1                =1                =0

Вторая строка:

...0 0 0 0 0 0 1 1 0 0 0 0 0 0 ...
   ◟◝−→◜◞

По ней будет ползти окно шириной 3.  Сложение попавших в окно чисел даст третью строку:

...0 0 0 0 0 1 2 2 1 0 0 0 0 0 ...
   ◟-◝−→◜-◞

По ней поползёт окно шириной 4,  и так далее, чтобы получить n-ю  строку, нужно складывать n  стоящих подряд чисел предыдущей строки.

Выпишем (без нулей) первые 6  строк нашей коллекции и выберем в ней нужное нам P76 :

pict

Получаем ответ 101.

Ответ: 101

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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