POJ-3069-Saruman's Army

来源:互联网 发布:腾讯云域名续费 编辑:程序博客网 时间:2024/05/17 01:29

这个题是说给你n个点,然后让你标记其中尽可能少的点,使得n个点都处于被标记点左右不超过R的区间内,

思路:贪心~尽量充分利用区间

代码:

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=1100;int a[maxn],n,r;int main(){    while(scanf("%d%d",&r,&n)!=EOF)    {if(r==-1&&n==-1)    break;for(int i=0;i<n;i++)    scanf("%d",&a[i]);sort(a,a+n);int l,index=0,ans=0;while(index<n){    l=a[index]+r;    while(index<n&&a[index]<=l)index++;    int p=a[index-1]+r;    while(index<n&&a[index]<=p)index++;    ans++;}printf("%d\n",ans);    }    return 0;}


1 0
原创粉丝点击