| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 52823 | Accepted: 11883 |
Description
Input
Output
Sample Input
3 2 1 2 -3 1 2 1 1 2 0 2 0 0
Sample Output
Case 1: 2 Case 2: 1
这些仔细考率都能过的,因为一个变量搞成int型竟然错了好久!
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"iostream"
#include"algorithm"
using namespace std;
#define N 1005
struct node
{
double l,r;
}p[N];
double x[N],y[N];
bool cmp(node a,node b)
{
return a.l<b.l;
}
int main()
{
int i,n,d,cnt=1,flag;
while(scanf("%d%d",&n,&d),n||d)
{
flag=0;
for(i=0;i<n;i++)
{
scanf("%lf%lf",&x[i],&y[i]);
if(flag)
continue;
if(d<y[i])
flag=1;
double t=sqrt(d*d-y[i]*y[i]);
p[i].l=x[i]-t;
p[i].r=x[i]+t;
}
printf("Case %d: ",cnt++);
if(flag)
{
printf("-1\n");
continue;
}
sort(p,p+n,cmp);
int t=1;
double rr;
rr=p[0].r;
for(i=1;i<n;i++)
{
if(p[i].l>rr) //该区间不能被雷达覆盖住
{
rr=p[i].r;
t++;
}
if(p[i].r<rr) //可以被当前雷达作用,
{
rr=p[i].r;
}
}
printf("%d\n",t);
}
return 0;
}
poj 1328 Radar Installation (贪心)
原文:http://blog.csdn.net/u011721440/article/details/38825649