POJ 1328 Radar Installation
2013-01-22 20:45
381 查看
此题纯属贪心,由于我是菜鸟,A了半天没结果,只好借鉴大神们的思路。题意就不说了,直接说思路吧。首先题目要求雷达要覆盖海中的岛屿,什么情况下岛屿才会被覆呢?也就是修建的雷达到岛屿的距离要小于雷达的覆盖半径这样就会想到以岛屿为圆心做圆,与岸边的交点就是可以覆盖这个岛屿的雷达的修建区间,我们确定好每个岛屿的雷达修建区间后对这些区间进行排序,比较一下就可以了,一定要注意被覆盖的区间哦!
#include <stdio.h> #include <math.h> #include <algorithm> using namespace std; struct sa{ double left; double right; }data[10000]; int cmp(sa a,sa b) { return a.left<b.left; } int main() { int n,d,count=1; while(scanf("%d%d",&n,&d)&&(d||n)) { int x,y,w=1,leida=1; for(int a=0;a<n;a++) { scanf("%d%d",&x,&y); if(w==1&&d>=y) { data[a].left=x-sqrt((double)(d*d-y*y)); data[a].right=x+sqrt((double)(d*d-y*y)); } else w=0; } if(w==0) { printf("Case %d: -1\n",count++); continue; } sort(data,data+n,cmp); double max=0; max=data[0].right; for(int b=1;b<n;b++) { if(data[b].left>max) { leida++; max=data[b].right; } else { if(data[b].right<max) { max=data[b].right; } } } printf("Case %d: %d\n",count++,leida); } return 0; }
相关文章推荐
- POJ 1328-Radar Installation(贪心)
- POJ1328 Radar Installation(贪心)
- POJ_1328_Radar Installation(greedy)
- POJ 1328 南阳oj 287 Radar【区间选点问题】
- Poj 1328 / OpenJudge 1328 Radar Installation
- poj 1328
- POJ 1328 - Radar Installation [贪心]
- poj1328
- POJ 1328
- Poj 1328 Radar Installation
- poj 1328 Radar Installation
- POJ1328——Radar Installation
- POJ 1328
- poj 1328 Radar Installation
- POJ 1328
- ZOJ-1360(POJ-1328) Radar Installation
- Radar Installation POJ - 1328 贪心
- poj 1328--Radar Installation
- 贪心 POJ 1328
- POJ 1328 岛屿雷达问题 贪心