Tôi không biết làm thế nào để giải quyết vấn đề này trong thời gian O(n2) , nhưng thuật toán O(n2logn) vẫn tồn tại.
Đặt là đường tròn có tâm là , điểm thứ , có bán kính . Không khó để thấy rằng điểm đặt có thể được bao quanh bởi một vòng tròn có bán kính iff giao điểm của không trống. Hơn nữa, nếu không trống, phải có một số điểm trong nằm trên một số (ranh giới của ). Vì vậy, với mỗi và mỗi điểm trên liên kết của nó, chúng tôi cố gắng tìm xem có bao nhiêu vòng tròn chứas i i r P = { p 0 , p 1 , Lọ , p m } r I ( P ) C ( p 0 ) , C ( p 1 ) , Rơi , C ( p m ) I ( P ) Tôi ( P ) bd C ( p i )C(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 . Số lượng tối đa trong số tất cả sẽ là câu trả lời cho vấn đề này.p
Hãy xem xét các điểm trong . Có một ánh xạ một-một giữa các điểm trên và số thực trong . Đối với mỗi vòng tròn , giao điểm giữa và có thể được biểu thị bằng một khoảng . Vì vậy, đối với tất cả các vòng tròn khác ngoài , có nhiều nhất khoảng (một số vòng tròn có thể không giao nhau với ). Số lượng tối đa có thể được tìm thấy dễ dàng bằng cách sắp xếp tất cả điểm cuối của khoảng, quét chúng theo thứ tự và đếm số chồng chéo hiện tại. Cho mỗibd C ( s i ) [ 0 , 2 π ) C ( s j ) 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 ) 2bdC(si)bdC(si)[0,2π)C(sj)C(sj)bdC(si)[beginj,endj]C(si)n−1C(si)2(n−1)C(si) , bước này có thể được thực hiện trong thời gian và có vòng tròn như vậy, vì vậy độ phức tạp thời gian của thuật toán này là .O(nlogn)nO(n2logn)