贪心算法 从第一个点开始,先找到半径内的最远点作为标记,再从标记点开始找到标记点为圆心的圆内的最远点,这样记为1次;重复上述步骤直到i>=n
poj似乎不能识别sort 哎,,
#include <iostream>
using namespacestd;
int main(int argc,const char * argv[]) {
int r,n,i,ans =0;
long long int x[2000],s,p;
while(scanf("%d%d",&r,&n)&&!(r==-1&&n==-1)){
for(i=0;i<n;i++){
scanf("%lld",&x[i]);
}
sort(x,x+n);
i=0;
while(i<n){
s=x[i++];
while(i<n&&x[i]<=s+r){
i++;
}
p=x[i-1];
while(i<n&&x[i]<=p+r){
i++;
}
ans++;
}
printf("%d\n",ans);
}
return0;
}