XIV математическая олимпиада «Шелковый путь», 2020 год
Выпуклой оболочкой конечного множества X точек на плоскости называется множество точек, лежащих внутри или на границе хотя бы одного выпуклого многоугольника с вершинами в X, включая вырожденные, т. е. отрезок и точка считаются выпуклыми многоугольниками. Никакие три вершины выпуклого многоугольника не лежат на одной прямой. Многоугольник содержит свою границу. ( Зиманов А. )
Комментарий/решение:
Комментарии от администратора Комментарии от администратора №1. Напомним теорему Хелли: если в конечном множестве выпуклых множеств точек на плоскости каждые три пересекаются, то и все пересекаются.
Докажем, что n=9m подходит. Пусть X — произвольное множество из 9m различных точек на плоскости, а Y — множество подмножеств X размера 6m+1.
Предположим, что существуют такие A,B,C∈Y, что их пересечение пусто. Пронумеруем все точки из X числами от 1 до 9m. Выпишем на листе бумаги сначала все номера точек из множества A, затем из множества B и в конце из множества C. В итоге, мы выпишем |A|+|B|+|C|=18m+3 числа. Так как эти три множества не пересекаются, то мы не могли выписать никакое число более, чем два раза. Значит, мы выписали не более 2⋅9m=18m чисел — противоречие. Следовательно, любые три элемента Y пересекаются.
Так как выпуклая оболочка множества точек полностью содержит это множество, то выпуклые оболочки любых трех элементов Y пересекаются. Следовательно, по теореме Хелли, выпуклые оболочки всех элементов Y имеют какую-то общую точку O.
Докажем следующую лемму: если выпуклая оболочка какого-то конечного множества точек Z содержит какую-то точку P, то существует W⊆Z, такое что |W|≤3 и выпуклая оболочка W содержит P. По определению выпуклой оболочки, существует выпуклый многоугольник с множеством вершин V⊆Z (возможно, вырожденный), который содержит эту точку P. Если |V|≤3, то V подходит в качестве W. Иначе, сделаем произвольную триангуляцию многоугольника с вершинами в V. Точка P должна лежать хотя бы в одном треугольнике разбиения. Множество вершин такого треугольника подходит в качестве W.
Заведем мешок, в который будем складировать непустые подмножества X. Определим следующую операцию, изменяющую X и Y: выберем любое A∈Y. Так как выпуклая оболочка A содержит O, то, по лемме, существует такое B⊆A, что |B|≤3 и выпуклая оболочка B содержит O. Положим B в мешок (очевидно, B непусто), удалим элементы B из X, и удалим из Y множества, содержащие элементы B.
После одной операции мощность X уменьшается не более, чем на три, и Y непусто до тех пор, пока |X|≥6m+1. Следовательно, мы можем выполнить операцию хотя бы m раз. Выполним операцию ровно m раз. Оставшиеся в X точки распределим произвольным образом между множествами в мешке.
Итак, множества в мешке составляют разбиение начального множества точек на m множеств и выпуклая оболочка каждого из них содержит точку O, т. е. они пересекаются, что нам и было нужно.
Комментарии от администратора Комментарии от администратора №2. Индукцией по m докажем, что любые хотя бы 4m2 различных точек на плоскости можно разбить на m непустых множеств, выпуклые оболочки которых пересекаются. При m=1 утверждение, очевидно, верно. Пусть оно верно для m=k−1, где k≥2. Докажем, что оно верно и для m=k. Рассмотрим произвольное множество X из хотя бы 4k2 различных точек на плоскости. Пусть Y — подмножество точек X, лежащих на границе выпуклой оболочки всех точек из X. Если |Y|<4k, то |X∖Y|>4k2−4k>4(k−1)2. По предположению индукции, X∖Y можно разбить на k−1 непустое множество точек, выпуклые оболочки которых пересекаются. Если добавить Y к этому k−1 множеству, то мы получим k множеств, выпуклые оболочки которых пересекаются (так как выпуклая оболочка Y содержит все точки из X∖Y). Если же |Y|≥4k, то рассмотрим два случая. Если все точки из Y лежат на одной прямой, то и все точки из X лежат на одной прямой. Проведем вдоль этой прямой ось координат и обозначим точки из X через A1,A2,…,A|X| по возрастанию координат. Так как 4k2>2k, то нам подходит разбиение: X={A1,A|X|}∪{A2,A|X|−1}∪…∪{Ak−1,A|X|−k+2}∪{Ak,Ak+1,…,A|X|−k+1}. Иначе, точки Y лежат на границе какого-то невырожденного выпуклого многоугольника. Обозначим точки из Y в порядке обхода по часовой стрелке границы этого многоугольника через A1,A2,…,Ak,Bk,Bk−1,…,B1,C1,C2,…,Ck,Dk,Dk−1,…,D1,E1,E2,…,E|Y|−4k. Пусть Z={Ak,Bk,Ck,Dk,E1,…,E|Y|−4k}∪(X∖Y). Докажем, что нам подходит следующее разбиение: X=(k−1⋃i=1{Ai,Bi,Ci,Di})∪Z. Для этого достаточно доказать ключевое утверждение: выпуклые оболочки множеств {A1,B1,C1,D1},{A2,B2,C2,D2},…,{Ak,Bk,Ck,Dk}. пересекаются. Через f(M) будем обозначать выпуклую оболочку множества точек M. Пусть T∈A1B1∩AkDk, Hi=f({A1,A2,…,Ai,Bi,Bi−1,…,B1,C1,C2,…,Ci,Di,Di−1,…,D1}) и Vi=f({Ai,Ai+1,…,Ak,Bk,Bk−1,…,Bi,Ci,Ci+1,…,Ck,Dk,Dk−1,…,Di}). Тогда для любого 1≤i≤k верно T∈A1B1⊆Hi и T∈AkDk⊆Vi. Следовательно, T∈k⋂i=1(Hi∩Vi)=k⋂i=1f({Ai,Bi,Ci,Di}), что и требовалось доказать.
Докажем, что n=m⋅2m+1 подходит. Рассмотрим множество S из n точек. Очевидно, достаточно найти хотя бы m непустых, попарно непересекающихся подмножества S, выпуклые оболочки которых будут иметь общую точку.
Через f(M) будем обозначать выпуклую оболочку множества точек M.
Шаг 1. “Сведем” задачу к выпуклому многоугольнику.
Пусть V1 множество вершин f(S) (берем только вершины этого выпуклого многоугольника). Аналогично определим Vi+1 для f(S/Vi). По итогу получим разбиение S на непустые множества V1,…,Vk, причем
f(Vk)⊂f(Vk−1)⊂…f(V1).
Если k≥m, то требуемое разбиение найдено, иначе ∃i:|Vi|>nm=2m+1, выберем X⊂Vi, что |X|=2m+1. Отметим, что точки этого множества образуют выпуклый многоугольник.
Шаг 2: Докажем индукцией по m, что X можно разбить на m множеств требуемым образом.
База для m=1 очевидна, для m=2 достаточно найти два отрезка (концы которых лежат в S) с общей точкой.
Допустим утверждение верно для m−1≥2. Пусть X образует многоугольник A1A2…A2m+1. Пусть A[odd]={A1,A3,...,A2m+1−1},A[even]={A2,A4,…,A2m+1}
По предположению A[odd] можно разбить на m−1 множеств, что ∃P которая принадлежит выпуклой оболочке каждого ⇒P∈f(A[odd])⊂f(X).
Достаточно доказать, что P∈f(A[even]). Допустим обратное, тогда P∈f(X/A[even]), откуда P∈f{(A2j,A2j+1,A2j+2}) для некоторого j.
В разбиений A[odd] есть множество не содержащее A2j+1, тогда f от этого множества
⊂f(A[odd]/{A2j+1})⊂f(X/{A2j,A2j+1,A2j+2})⟹P∈f(X/{A2j,A2j+1,A2j+2})
но точки из f(X/{A2j,A2j+1,A2j+2}) лежат по другую сторону от точки P относительно прямой A2jA2j+2. Противоречие.
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.