poj3069

来源:互联网 发布:js怎么设置cssimporant 编辑:程序博客网 时间:2024/06/07 03:19

题意:
求最少多少点加标记?
思路:
贪心:

AC代码:

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#include <stack>#include <set>#define INF 0x3f3f3f#define ll long longusing namespace std;int a[1005];int main(){    int r,n;    while(scanf("%d%d",&r,&n)!=EOF){        if(r==-1 && n==-1) break;        for(int i=1; i<=n; i++){            scanf("%d",&a[i]);        }        sort(a+1,a+n+1);        int ans=0;        int left=0;        int k=1;        int s=0;        while(k<=n){            s=a[k];            while(k<=n && a[k]<=s+r) k++;            int p=a[k-1];            while(k<=n && a[k]<=p+r) k++;            ans++;        }        cout << ans << endl;    }    return 0;}
0 0