Nie wiem jak rozwiązać ten problem w czasie , ale istnieje algorytm .O(n2)O(n2logn)
Niech będzie okręgiem, którego środkiem jest , ty punkt, o promieniu . Nietrudno jest stwierdzić, że zestaw punktów może być zamknięty okręgiem o promieniu w punkcie przecięcia z C (p_0), C (p_1), \ ldots, C (p_m) nie jest puste. Co więcej, jeśli I (P) nie jest puste, muszą być pewne punkty w I (P) leżące na pewnym \ textbf {bd} C (p_i) (granica C (p_i) ). Tak więc dla każdego C (s_i) i każdego punktu p na jego wiązaniu próbujemy ustalić, ile kręgów zawieraC(si)siirP={p0,p1,…,pm}rI(P)C(p0),C(p1),…,C(pm)I(P)I(P)bdC(pi)C ( s i ) p pC(pi)C(si)pp . Maksymalna liczba spośród wszystkich p będzie odpowiedzią na ten problem.
Przeanalizujmy punkty w . Istnieje mapowanie jeden na jeden między punktami na a liczbą rzeczywistą w . Dla każdego okręgu przecięcie między i może być reprezentowane przez interwał . Tak więc dla wszystkich kręgów innych niż istnieje co najwyżej przedziałów (niektóre kręgi mogą nie przecinać się z ). Maksymalną liczbę można łatwo znaleźć, sortując wszystkie punkty końcowe interwału, skanując je w kolejności i licząc bieżącą nakładającą się liczbę. Dla każdegobd C ( s i ) [ 0 , 2 π ) C ( ( n - 1 ) C ( s i ) O ( n logbdC(si)bdC(si)[0,2π)C ( s j ) bd C ( s i ) [ b e g i n j , e n d j ] C ( s i ) n - 1 C ( s i ) 2C(sj)C(sj)bdC(si)[beginj,endj]C(si)n−1C(si)2(n−1)C(si) , ten krok można wykonać w czasie i jest takich kół, więc złożoność czasowa tego algorytmu wynosi .O(nlogn)nO(n2logn)