Решение: Кластеризация звёздных точек
Фрагмент звёздного неба спроецирован на плоскость с декартовой системой координат. Учёный решил провести кластеризацию полученных точек, являющихся изображениями звёзд, то есть разбить их множество на $N$ непересекающихся непустых подмножеств (кластеров), таких, что точки каждого подмножества лежат внутри прямоугольника со сторонами длиной $H$ и $W$, причём эти прямоугольники между собой не пересекаются. Стороны прямоугольников не обязательно параллельны координатным осям. Гарантируется, что такое разбиение существует и единственно для заданных размеров прямоугольников.
Будем называть центром кластера точку этого кластера, сумма расстояний от которой до всех остальных точек кластера минимальна. Для каждого кластера гарантируется единственность его центра. Расстояние между двумя точками на плоскости $A(x_1,y_1)$ и $B(x_2,y_2)$ вычисляется по формуле $d(A,B)=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}$.
В файле А хранятся координаты точек двух кластеров, где $H=6$ и $W=4{,}5$ для каждого кластера. В каждой строке записана информация о расположении на карте одной звезды: сначала координата $x$, затем координата $y$. Известно, что количество точек не превышает 1000.
В файле Б хранятся координаты точек трёх кластеров, где $H=6$, $W=5$ для каждого кластера. Известно, что количество точек не превышает 10 000. Структура хранения информации в файле Б аналогична структуре в файле А.
Известно, что в файле Б имеются координаты ровно трёх лишних точек, являющихся аномалиями, возникшими в результате помех при передаче данных. Эти три точки не относятся ни к одному из кластеров, их учитывать не нужно.
Для файла А определите координаты центра каждого кластера, затем найдите $P_x$ — максимальную из абсцисс центров кластеров, и $P_y$ — максимальную из ординат центров кластеров.
Для файла Б определите координаты центра каждого кластера, затем найдите $Q_x$ — разность абсцисс центров кластеров с минимальным и максимальным количеством точек, и $Q_y$ — разность ординат центров кластеров с минимальным и максимальным количеством точек. Гарантируется, что во всех кластерах количество точек различно.
Данные для решения находятся в прилагаемых файлах.
Решение по шагам
7 шаговСчитать координаты точек из файлов А и Б. Для файла Б временно рассматривать все точки, включая три аномалии.
Разбить точки на кластеры. Две точки относятся к одному кластеру, если их можно включить в общий прямоугольник со сторонами $H$ и $W$; итоговые прямоугольники кластеров не пересекаются.
Для каждого найденного кластера перебрать все его точки. Для каждой точки вычислить сумму евклидовых расстояний до остальных точек кластера. Точка с минимальной суммой является центром кластера.
В файле Б определить три аномальные точки как точки, не входящие ни в один из трёх кластеров, и исключить их из дальнейших вычислений.
Для файла А найти максимальные координаты центров: $P_x=\max x_i$ и $P_y=\max y_i$.
Для файла Б определить кластеры с минимальным и максимальным числом точек. Вычислить разности координат их центров: $Q_x=x_{\min}-x_{\max}$ и $Q_y=y_{\min}-y_{\max}$.
Сформировать ответ в виде $\lfloor |P_x\cdot10000|\rfloor$, $\lfloor |P_y\cdot10000|\rfloor$, $\lfloor |Q_x\cdot10000|\rfloor$, $\lfloor |Q_y\cdot10000|\rfloor$.
Числовой ответ определяется по данным приложенных файлов А и Б.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Учитывают три аномальные точки файла Б при вычислении центров.
Используют среднее арифметическое координат вместо точки с минимальной суммой расстояний.
Забывают взять абсолютное значение и целую часть произведения на 10 000.
Путают порядок кластеров с минимальным и максимальным количеством точек.
Используют квадрат расстояния вместо расстояния, заданного в условии.