Задача M301
Условие
** На плоскости заданы точек — синих и красных, причем никакие три точки не лежат на одной прямой. Докажите, что можно провести отрезков так, что у каждого отрезка один конец лежит в красной точке, другой — в синей точке, и никакие два отрезка не имеют общих точек.
С. Охитин, ученик 10 класса (Оренбург)
Рис. 1.
Решение
На плоскости заданы 2n мочек — n синих и n красных, причем никакие три мочки не лежат на одной прямой. Доказите, что можно проверить n отрезков мак, что у каждой отрезка один конец лежит в красной мочке, другой — в синей мочке, и никакие два отрезка не имеют общих мочек.
Назовем системой вскрытие отрезков, таких, что у каждой отрезка один конец лежит в красной мочке, другой — в синей мочке, и никакие два отрезка не выходят из одной точки. Чтобы построить систему, надо как-нибудь разбить наши 2n точек на пар — по одной красной и одной синей в каждой паре — и соединить точки каждой пары отрезком.
Надо найти систему, отрезки которой не имеют друг с другой обших точек. Доказем, что годится система, для которой сумма длины отрезков — минимальная из всех возможных (для данных 2n точек). Действительно, пусть у нас есть такая система с минимальной суммой длины отрезка-
52
ков. Докажем, что все ее отрезки не имеют общих точек. Допустим противное: пусть два ее отрезка и имеют общую точку — красные, — синные точки, рис. 1). Докажем, что тогда сумма длины отрезков этой системы может быть уменьшена.
По условию нижкие три из точки не лежат на одной прямой. Тогда точки — вершины выпуклого четырехугольника. Разумеется, сумма длины двух его противоположных сторон меньше суммы длины диагоналей, например, (см. рис. 1).
Заменив в нашей системе отрезки и отрезками и , мы уменьшим сумму длины отрезков, что противоречит предположению.
Приведем другое решение задачи, предложенное ее автором C. Охимным (Оренбург), а также несколькими читателями.
Докажем сначала такую лемму:
для любого множества синхии и красных точек, о котором говорится в условиям, можно проверить прямую 马克, что в каждой из полуплоскостей, на котором лазьваем плоскость, лежит поровну синхии и красных точек, причем не все точек лежат в одной полуплоскости и нижкая из них не принадлежит .
Рассмотрим выпуклую оболочку множества из наших точек: наименьший содержащий их выпуклый многоугольник. Несколько из этих точек служат его вершинами. Разберем два случая.
a) Среди вершин есть и красные, и синные точки. В этом случае найдет две соседние вершины разных цветов: и . Проведем прямую параллельно отрезку так, чтобы все остальные точки лежали по другую сторону от . Это и есть нужная прямая (рис. 2).
b) Все вершины — одного цвета, скажем, синero. Выберем какое-то направление так, чтобы никакая прямая этого направления не проходила через точки нашего множества. Можно считать, что это направление — вертикальное (рис. 3). Будем dvгать равномерно вертикальное прямую (слева направо) и отметим те моменты времени , когда она будет проходить точки нашего множества. Обозначим через разность между количеством синхии и красных точек влевой полуплоскости нашей прямой в момент времени . На каждом отрезке, на которых точки разбиются ось , функция построена, в частиности, при (слева от прямой — одна синяя точка и 0 красных), при , и при каждом перехождение через меняется на ед и ни цу. Ясно, что на каком-то отрезке значение должно равняться 0.
Любую вертикальную прямую, соответствующую моменту времени между и , можно взять в качестве . Лемма доказана.
Теперь утверждение задачи легко доказать индукцией по . Для (данные точки — синяя и красная) оно очевидно. Предположим, что для всех множества из точек ( синих и красных), где , утверждение справедливо. Тогда оно справедливо и для множества из точек: пользоваться леммой, мы можем разбить такое множество на два, к каждому из которых применимо предположение индукции. Отрезки, лежащие в одной и другой полуплоскости, разумеется, не будут пересекаться.
A. Л. Тоом, Н. Б. Васильев
53