C++求最大加权独立集。只要思路就好了,代码我自己写

假设有A,它提供一个干扰半径,B为一个集合,集合中每一个元素提供位置坐标和一个权重。如果两个元素半径小于干扰半径,则不能放入一个集合中,如果两位置距离大于等于干扰半径,则可以。求出最大权重的集合,集合的权重为集合中元素的权重之和。

我已经想了好久好久了QAQ 但是写出来的一个办法会导致内存泄漏。
拜托大神给一个思路就好了,代码我自己写。

参考:http://zhidao.baidu.com/link?url=vfGzj4fDQL0ZDAvHwnD37WZrMOV6kmiwiFsCrv1gP2omsdDUsjNUb1GuSM4O6kxNL9pGYrwzVfBCWXWQL4wR5_