Loading [MathJax]/jax/output/SVG/jax.js

XIV математическая олимпиада «Шелковый путь», 2020 год


Докажите, что для любого натурального числа m существует такое натуральное n, что любые n различных точек на плоскости можно разбить на m непустых множеств, выпуклые оболочки которых будут иметь общую точку.
Выпуклой оболочкой конечного множества X точек на плоскости называется множество точек, лежащих внутри или на границе хотя бы одного выпуклого многоугольника с вершинами в X, включая вырожденные, т. е. отрезок и точка считаются выпуклыми многоугольниками. Никакие три вершины выпуклого многоугольника не лежат на одной прямой. Многоугольник содержит свою границу. ( Зиманов А. )
посмотреть в олимпиаде

Комментарий/решение:

Комментарии от администратора Комментарии от администратора №1.     Напомним теорему Хелли: если в конечном множестве выпуклых множеств точек на плоскости каждые три пересекаются, то и все пересекаются.
Докажем, что n=9m подходит. Пусть X — произвольное множество из 9m различных точек на плоскости, а Y — множество подмножеств X размера 6m+1.
Предположим, что существуют такие A,B,CY, что их пересечение пусто. Пронумеруем все точки из X числами от 1 до 9m. Выпишем на листе бумаги сначала все номера точек из множества A, затем из множества B и в конце из множества C. В итоге, мы выпишем |A|+|B|+|C|=18m+3 числа. Так как эти три множества не пересекаются, то мы не могли выписать никакое число более, чем два раза. Значит, мы выписали не более 29m=18m чисел — противоречие. Следовательно, любые три элемента Y пересекаются.
Так как выпуклая оболочка множества точек полностью содержит это множество, то выпуклые оболочки любых трех элементов Y пересекаются. Следовательно, по теореме Хелли, выпуклые оболочки всех элементов Y имеют какую-то общую точку O.
Докажем следующую лемму: если выпуклая оболочка какого-то конечного множества точек Z содержит какую-то точку P, то существует WZ, такое что |W|3 и выпуклая оболочка W содержит P. По определению выпуклой оболочки, существует выпуклый многоугольник с множеством вершин VZ (возможно, вырожденный), который содержит эту точку P. Если |V|3, то V подходит в качестве W. Иначе, сделаем произвольную триангуляцию многоугольника с вершинами в V. Точка P должна лежать хотя бы в одном треугольнике разбиения. Множество вершин такого треугольника подходит в качестве W.
Заведем мешок, в который будем складировать непустые подмножества X. Определим следующую операцию, изменяющую X и Y: выберем любое AY. Так как выпуклая оболочка A содержит O, то, по лемме, существует такое BA, что |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=k1, где k2. Докажем, что оно верно и для m=k. Рассмотрим произвольное множество X из хотя бы 4k2 различных точек на плоскости. Пусть Y — подмножество точек X, лежащих на границе выпуклой оболочки всех точек из X. Если |Y|<4k, то |XY|>4k24k>4(k1)2. По предположению индукции, XY можно разбить на k1 непустое множество точек, выпуклые оболочки которых пересекаются. Если добавить Y к этому k1 множеству, то мы получим k множеств, выпуклые оболочки которых пересекаются (так как выпуклая оболочка Y содержит все точки из XY). Если же |Y|4k, то рассмотрим два случая. Если все точки из Y лежат на одной прямой, то и все точки из X лежат на одной прямой. Проведем вдоль этой прямой ось координат и обозначим точки из X через A1,A2,,A|X| по возрастанию координат. Так как 4k2>2k, то нам подходит разбиение: X={A1,A|X|}{A2,A|X|1}{Ak1,A|X|k+2}{Ak,Ak+1,,A|X|k+1}. Иначе, точки Y лежат на границе какого-то невырожденного выпуклого многоугольника. Обозначим точки из Y в порядке обхода по часовой стрелке границы этого многоугольника через A1,A2,,Ak,Bk,Bk1,,B1,C1,C2,,Ck,Dk,Dk1,,D1,E1,E2,,E|Y|4k. Пусть Z={Ak,Bk,Ck,Dk,E1,,E|Y|4k}(XY). Докажем, что нам подходит следующее разбиение: X=(k1i=1{Ai,Bi,Ci,Di})Z. Для этого достаточно доказать ключевое утверждение: выпуклые оболочки множеств {A1,B1,C1,D1},{A2,B2,C2,D2},,{Ak,Bk,Ck,Dk}. пересекаются. Через f(M) будем обозначать выпуклую оболочку множества точек M. Пусть TA1B1AkDk, Hi=f({A1,A2,,Ai,Bi,Bi1,,B1,C1,C2,,Ci,Di,Di1,,D1}) и Vi=f({Ai,Ai+1,,Ak,Bk,Bk1,,Bi,Ci,Ci+1,,Ck,Dk,Dk1,,Di}). Тогда для любого 1ik верно TA1B1Hi и TAkDkVi. Следовательно, Tki=1(HiVi)=ki=1f({Ai,Bi,Ci,Di}), что и требовалось доказать.

пред. Правка 2   7
2 года 7 месяца назад #

Докажем, что n=m2m+1 подходит. Рассмотрим множество S из n точек. Очевидно, достаточно найти хотя бы m непустых, попарно непересекающихся подмножества S, выпуклые оболочки которых будут иметь общую точку.

Через f(M) будем обозначать выпуклую оболочку множества точек M.

Шаг 1. “Сведем” задачу к выпуклому многоугольнику.

Пусть V1 множество вершин f(S) (берем только вершины этого выпуклого многоугольника). Аналогично определим Vi+1 для f(S/Vi). По итогу получим разбиение S на непустые множества V1,,Vk, причем

f(Vk)f(Vk1)f(V1).

Если km, то требуемое разбиение найдено, иначе i:|Vi|>nm=2m+1, выберем XVi, что |X|=2m+1. Отметим, что точки этого множества образуют выпуклый многоугольник.

Шаг 2: Докажем индукцией по m, что X можно разбить на m множеств требуемым образом.

База для m=1 очевидна, для m=2 достаточно найти два отрезка (концы которых лежат в S) с общей точкой.

Допустим утверждение верно для m12. Пусть X образует многоугольник A1A2A2m+1. Пусть A[odd]={A1,A3,...,A2m+11},A[even]={A2,A4,,A2m+1}

По предположению A[odd] можно разбить на m1 множеств, что P которая принадлежит выпуклой оболочке каждого Pf(A[odd])f(X).

Достаточно доказать, что Pf(A[even]). Допустим обратное, тогда Pf(X/A[even]), откуда Pf{(A2j,A2j+1,A2j+2}) для некоторого j.

В разбиений A[odd] есть множество не содержащее A2j+1, тогда f от этого множества

f(A[odd]/{A2j+1})f(X/{A2j,A2j+1,A2j+2})Pf(X/{A2j,A2j+1,A2j+2})

но точки из f(X/{A2j,A2j+1,A2j+2}) лежат по другую сторону от точки P относительно прямой A2jA2j+2. Противоречие.