poj 贪心相关之1328 Radar Installation

来源:互联网 发布:四川卫生统计网络直报 编辑:程序博客网 时间:2024/06/09 23:13

poj 贪心相关之1328 Radar Installation
Accepted 172K 16MS

#include<iostream>#include<cstring>#include<cstdio>#include<math.h>#include<algorithm>#include<vector>#include<queue>#define MAXNUM 1000using namespace std;struct point{    float start;    float end;};bool cmp(point p1, point p2){    return p1.end < p2.end;}int m, n;float a[MAXNUM], b[MAXNUM];point P[MAXNUM];int main(){    //freopen("1.txt", "r", stdin);    int i, j, Case, cnt;    bool k;    float tmp;    Case = 1;    while (scanf("%d%d", &m, &n) != EOF && (m || n))    {        k = 0;        for (i = 0; i < m; i++)        {            scanf("%f%f", &a[i], &b[i]);        }        for (i = 0; i < m; i++)        {            if (b[i] > n)            {                k = 1;                break;            }            tmp = float(n);            tmp = sqrt(tmp*tmp - b[i] * b[i]);            P[i].start = a[i] - tmp;            P[i].end = a[i] + tmp;        }        if (k)        {            printf("Case %d: -1\n", Case++);        }        else        {            sort(P, P + m, cmp);            cnt = 1;            tmp = P[0].end;            for (i = 0; i < m; i++)            {                if (P[i].start <= tmp)                    continue;                else                {                    cnt++;                    tmp = P[i].end;                }            }            printf("Case %d: %d\n", Case++, cnt);        }    }}
原创粉丝点击