मैं इस समस्या को समय में हल करना नहीं जानता , लेकिन एल्गोरिथ्म मौजूद है।O ( n 2 log n )O(n2)O(n2logn)
आज्ञा देना वृत्त है जिसका केंद्र , बिंदु, त्रिज्या साथ है । यह पता लगाना मुश्किल नहीं है कि बिंदु सेट को त्रिज्या iff चौराहे के साथ एक वृत्त द्वारा संलग्न किया जा सकता है खाली नहीं है। इसके अलावा, अगर खाली नहीं है, वहाँ कुछ अंक में होना चाहिए कुछ पर रखना (की सीमा )। तो प्रत्येक और इसके बिंदु पर प्रत्येक बिंदु , हम यह पता लगाने की कोशिश करते हैं कि कितने मंडल हैंs i i r p = { p 0 , p 1 , … , p m } r I ( P ) C ( p 0 ) , C ( p 1 ) , … , C ( p m ) I ( P ) 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 । सभी अधिकतम गणना इस समस्या का जवाब होगी।p
चलो में बिंदुओं की जांच करते हैं । और वास्तविक संख्या में अंकों के बीच एक-से-एक मैपिंग है । प्रत्येक सर्कल , और बीच के अंतर को एक अंतराल द्वारा दर्शाया जा सकता है । इसलिए अलावा अन्य सभी मंडलियों के लिए , अधिकांश अंतराल हैं (कुछ मंडल C (s_i) के साथ प्रतिच्छेद नहीं कर सकते हैं )। अधिकतम गिनती अंतराल के सभी 2 (एन -1) अंत बिंदुओं को क्रमबद्ध करके उन्हें क्रम में स्कैन करके और वर्तमान ओवरलैपिंग संख्या की गिनती करके आसानी से पाया जा सकता है । प्रत्येक के लिएBD सी ( एस मैं ) [ 0 , 2 π ) सी ( रों ञ ) सी ( रों ञ ) BD सी ( एस मैं ) [ ख ई जी मैं एन जे , ई एन डी जे ] सी ( रों 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) , यह चरण समय में किया जा सकता है , और ऐसे वृत्त हैं, इसलिए इस एल्गोरिथ्म की समय जटिलता ।O(nlogn)nO(n2logn)