poj 3069 Saruman's Army

来源:互联网 发布:网易音乐经典评论知乎 编辑:程序博客网 时间:2024/06/13 04:43

题目:这里写图片描述
贪心算法,先对x[i]从小到大排序,然后从x[0]开始遍历,找到x[0]+R能覆盖的最远的点i,找到x[i]+R能覆盖的最远的点l。再以l为起点循环上述过程
AC情况:
这里写图片描述
代码:

#include<iostream>#include<algorithm>using namespace std;int x[1005];int main() {    int R, N,cnt;    while (scanf("%d%d",&R,&N)){        if (R == N&&N == -1) break;        cnt = 0;        for (int i = 0; i < N; i++)            scanf("%d", &x[i]);        sort(x, x + N);        for (int i=0; i < N;) {            int t = i;            cnt++;            while (x[t] + R >= x[i++]);            i=t = i-2;            while (x[t] + R >= x[i++]);            i--;        }        printf("%d\n", cnt);    }    return 0;}
原创粉丝点击