UVALive - 2519 Radar Installation
来源:互联网 发布:华泰软件工程有限公司 编辑:程序博客网 时间:2024/06/06 10:54
题意:给定n个岛屿坐标,和雷达半径,雷达只能放在x轴上,求出最少放几个雷达能覆盖满所有岛屿。
思路:贪心。每个岛屿都有最左和最右最远放雷达能覆盖到的点,我们把这作为左右区间。只要在区间中选中一个位置放雷达。就可以满足该岛屿被覆盖,转换为区间选点问题。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int MAXN = 1005;struct Node{ double l; double r; friend bool operator <(const Node &a,const Node &b){ if (a.r != b.r) return a.r < b.r; return a.l < b.l; }}arr[MAXN];int main(){ int n,r,cas = 1; while (scanf("%d%d",&n,&r) != EOF && r + n){ memset(arr,0,sizeof(arr)); int flag = 0; for (int i = 0; i < n; i++){ int x,y; scanf("%d%d",&x,&y); if (y > r){ flag = 1; continue; } int t = sqrt(r*r - y*y); arr[i].l = x - t; arr[i].r = x + t; } printf("Case %d: ",cas++); if (flag) printf("-1\n"); else { sort(arr,arr+n); int cur = 1; double start = arr[0].r; for (int i = 1; i < n; i++){ if (arr[i].l <= start) continue; cur++; start = arr[i].r; } printf("%d\n",cur); } } return 0;}
- UVALive - 2519 Radar Installation
- UVALive - 2519 Radar Installation
- UVALive - 2519 Radar Installation
- UVAlive 2519 Radar Installation (区间选点问题)
- UVALIVE 2519 Radar Installation 区间选点问题
- uvalive 2519 - Radar Installation(区间选点问题)
- UVALive 2519 Radar Installation 雷达扫描 区间选点问题
- UVALive - 2519 Radar Installation(区间选点问题)
- uva-2519 - Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- Radar Installation
- 通过反射调类中的private方法
- Aix系统下增加Oracle temp 表空间 (裸设备方式)
- Oracle密码管理五大要点
- IOS设计模式总结
- IE Javascript 进阶调试
- UVALive - 2519 Radar Installation
- 五分钟精通Oracle表空间
- Android应用程序包扫描过程源码分析
- 哑铃健身计划及图解说明
- OpenCV中的Mat
- 安装 gdb insight
- UITextField的详细用法,包括具体协议(限制内容和大小等)
- 可到达性(算法导论22-4)
- 五种Oracle用户的授权与管理