Circles intersection problem [Help]

Правка en3, от himanshujaju, 2016-04-09 19:25:30

Recently in a contest I came across this question :

"Given N circles, defined by their x co-ordinate, y co-ordinate and radius r, remove the minimum number of circles such that the remaining circles are non intersecting. Touching a circle is also considered as intersecting."


1 ≤ N ≤ 1000

0 ≤ abs(X), abs(Y), abs(R) ≤ 1000

The setter solution used a greedy solution (to remove the circle with maximum intersections everytime till all remaining are non intersecting), but this fails on a very simple test case.

Here, the greedy solution gives answer as 4, but we can do it by removing 3 circles also.

I could convert this problem into a graph (edges depict intersection between the vertices) for which we need the minimum vertex cover, which doesn't have a polynomial time solution. Can we convert it into some other problem and solve efficiently? What's the best complexity you can come up with ?

Теги help, geometry, np


  Rev. Язык Кто Когда Δ Комментарий
en3 Английский himanshujaju 2016-04-09 19:25:30 0 (published)
en2 Английский himanshujaju 2016-04-09 19:24:51 348 Tiny change: 'straints\n1
en1 Английский himanshujaju 2016-04-09 19:18:09 763 Initial revision (saved to drafts)