Представьте, что существует двумерное пространство, и в этом пространстве есть круги, которые растут с разными постоянными скоростями. Какова эффективная структура данных для хранения этих окружностей, чтобы я мог сделать запрос "Какие окружности пересекают точку p
в момент времени t
?".
EDIT: Я понимаю, что могу хранить начальное состояние окружностей в пространственной структуре данных и сделать запрос, в котором я пересекаю окружность в точке p
с радиусом fastest_growth * t
, но это неэффективно, когда есть несколько окружностей, которые растут очень быстро, в то время как большинство растет медленно.
Дополнительное редактирование: Я мог бы расширить вышеуказанный подход, разделив круги и сгруппировав их по скорости роста, затем применив вышеуказанный подход к каждой группе, но это требует ограниченного времени, чтобы быть эффективным.