Bu sorunun O(n2) zamanında nasıl çözüleceğini bilmiyorum , ancak bir O(n2logn) algoritması var.
Let C(si) olan merkezi çember si , i yarıçap ile inci noktası, r . Bu nokta grubu bulmak zor değil P={p0,p1,…,pm} yarıçapı olan bir daire ile kapalı olabilir r kesişme IFF I(P) arasında boş değil. Ayrıca, eğer bir ( P ) boş değilse, bazı noktalar olmalıdır I ( P ) bir bırakmaya bd C ( p i ) (sınır C ( p i ) ). Bu yüzden, her C ( s i ) ve her bir p noktası için, onun karnında kaç tane p içerdiğini bulmaya çalışıyoruz. Tüm arasında maksimum sayım p bu sorunun cevabı olacaktır.C(p0),C(p1),…,C(pm)I(P)I(P)bdC(pi)C(pi)C(si)ppp
deki noktaları inceleyelim . Bd C ( s i ) üzerindeki noktalar ile [ 0 , 2 π ) içindeki gerçek sayı arasında bire bir eşleme vardır . Her C ( s j ) dairesi için , C ( s j ) ve bd C ( s i ) arasındaki kesişme bir aralık ile temsil edilebilir [ b e g i n jbdC(si)bdC(si)[0,2π)C(sj)C(sj)bdC(si) . Dolayısıyla C ( s i ) dışındaki tüm daireleriçin en fazla n - 1 aralık vardır (bazı daireler C ( s i ) ile kesişmeyebilir). Maksimumsayı, aralığıntüm 2 ( n - 1 ) uç noktasını sıralayarak, sırayla tarayarak ve mevcut çakışan sayıyı sayarak kolayca bulunabilir. Her C ( s i ) için bu adım O ( n log n[beginj,endj]C(si)n−1C(si)2(n−1)C(si) Saat ve orada n bu algoritmanın zaman karmaşıklığı yani, daireler, O ( n, 2 günlük , n ) .O ( n günlüğün )nO ( n2günlükn )