Não sei como resolver esse problema no tempo , mas existe um algoritmo O ( n 2 log n ) .O ( n2)O ( n2registron )
Seja o círculo cujo centro é s i , o i- ésimo ponto, com raio r . Não é difícil descobrir que o conjunto de pontos P = { p 0 , p 1 , … , p m } possa ser delimitado por um círculo com raio r se a interseção I ( P ) de C ( p 0 ) , C ( p 1 ) , …C( sEu)sEuEurP= { p0 0, p1, … , Pm}rEu( P) não está vazio. Além disso, se I ( P ) não estiver vazio, deve haver alguns pontos em I ( P ) colocados em algum bd C ( p i ) (o limite de C ( p i ) ). Portanto, para cada C ( s i ) e cada ponto p em sua ligação, tentamos descobrir quantos círculos contêm p . A contagem máxima entre todos os p será a resposta para esse problema.C( p0 0) , C(p1) , … , C(pm)Eu(P)Eu(P)bd C( pEu)C( pEu)C( sEu)ppp
Vamos examinar os pontos em . Existe um mapeamento individual entre os pontos em bd C ( s i ) e o número real em [ 0 , 2 π ) . Para cada círculo C ( s j ) , a interseção entre C ( s j ) e bd C ( s i ) pode ser representada por um intervalo [ b e g i n jbd C( sEu)bd C( sEu)[ 0 , 2 π)C( sj)C( sj)bd C( sEu) . Portanto, para todos os círculos que não sejam C ( s i ) , há no máximo n - 1 intervalos (alguns círculos podem não se cruzar com C ( s i ) ). A contagem máxima pode ser encontrada facilmente, classificando todos os 2 ( n - 1 ) pontos finais do intervalo, varrendo-os em ordem e contando o número sobreposto atual. Para cada C ( s i ) , esta etapa pode ser realizada em O ( n log n[ b e geu nj, E n dj]C( sEu)n - 1C(si)2(n−1)C(si) time, e existem n tais círculos, portanto, a complexidade do tempo desse algoritmo é O ( n 2 log n ) .O(nlogn)nO(n2logn)