Radar Installation

poj 1328

题目大意:

在平面直角坐标系的一二象限上有n个小岛,现在让你在x坐标上布置雷达,每个雷达可以侦测以它为原心,半径为m的圆内的所有小岛,现在问侦测完这n个小岛最少要多少个雷达

输入样例

3 2
1 2
-3 1
2 11 2
0 20 0

输出样例

Case 1: 2
Case 2: 1

数据范围

1⩽n⩽10001\leqslant n\leqslant 10001⩽n⩽1000

解题思路:

把每个点可以被哪个范围内雷达侦测到记录下来,然后按范围的最尾端从小到大排序,然后每一次在需要安装雷达的范围的最右端安装雷达,这样可以让更多的点被侦测到

代码:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,t,pp,ans;
double x,y,m,k;
struct rec
{double bg,ed;
}a[1500];
bool cmp(rec x,rec y){return x.ed<y.ed||x.ed==y.ed&&x.bg<=y.bg;}
int main()
{scanf("%d %lf",&n,&m);while(n){++t;pp=0;for (int i=1;i<=n;++i){scanf("%lf %lf",&x,&y);if (y>m) pp=1;a[i].bg=x-sqrt(m*m-y*y);//计算范围a[i].ed=x+sqrt(m*m-y*y);}if (pp)//离x轴的坐标大于m则无解{printf("Case %d: -1\n",t);scanf("%d %lf",&n,&m);continue;}sort(a+1,a+1+n,cmp);//排序ans=1;k=a[1].ed;//最后面的雷达for (int i=2;i<=n;++i)if (a[i].bg>k)//没有被侦测到ans++,k=a[i].ed;//新建一个printf("Case %d: %d\n",t,ans);scanf("%d %lf",&n,&m);}
}

【贪心】Radar Installation(poj 1328)相关推荐

  1. 【POJ - 1328】Radar Installation(贪心+计算几何)安装雷达辐射岛屿

    题干: Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the ot ...

  2. POJ Radar Installation 1328(雷达)贪心算法

    问题描述 问题链接 Description Assume the coasting is an infinite straight line. Land is in one side of coast ...

  3. POJ 1328 Radar Installation【贪心】

    POJ 1328 题意: 将一条海岸线看成X轴,X轴上面是大海,海上有若干岛屿,给出雷达的覆盖半径和岛屿的位置,要求在海岸线上建雷达,在雷达能够覆盖全部岛屿情况下,求雷达的最少使用量. 分析: 贪心法 ...

  4. 贪心算法—建立雷达(POJ 1328)

    贪心算法--区间选点问题 这也是贪心算法的经典问题,一般情况为:有n个闭区间[ai,bj],取尽量少的点,使得每个区间内都至少有一个点. 分析 如果区间i内已经有一个点被取到,则称此区间已经被满足. ...

  5. POJ - 1328 Radar Installation(贪心+思维)

    题目链接:点击查看 题目大意:校长想通过监控设备覆盖学校内的N座建筑物,每座建筑物被视作一个质点,在笛卡尔坐标系中给出他们的坐标(x,y),并且所有建筑物均处在x轴的上方.因为学校的供电和传输线路均沿 ...

  6. poj 1328 Radar Installation

    题目链接:http://poj.org/problem?id=1328 题意: 设x轴为海岸,下方为陆地,上方为海.海上有n个岛屿,现在需要用雷达将所有的岛屿覆盖起来.给定岛屿个数及每个岛屿的坐标,给 ...

  7. Radar Installation(贪心,sort)

    在poj上C++可以AC,但G++不行.杭电上更是好多的TLE,结果把cin改成scanf便可以轻松AC. #include <iostream> #include <algorit ...

  8. POJ-1328 Radar Installation 贪心

    以每个点算出左右覆盖的雷达所在x轴范围,然后贪心计算出所需圆的个数. 当后一个点的圆心在x轴的左坐标在前一个点的右坐标的右坐标之前,则这个点就会被覆盖. 代码如下:(C++能过,G++ runtime ...

  9. 【POJ1328】Radar Installation(贪心,决策包容)

    problem 平面直角坐标系上有n个点. 在x轴上找尽量少的点,并以这些点为圆心画一个半径为d的圆,使得给定的点都在画出来的圆里. 求最少要画的点数,如果不能输出-1. solution 一.不能的 ...

最新文章

  1. java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...
  2. 下围棋so easy ,AlphaZero开始玩量子计算!
  3. Python dataframe修改列顺序(pandas学习)
  4. pinpoint全链路监控系统安装配置
  5. 2020-3-20前端题目
  6. 将PHP文件生成静态文件源码
  7. 3-5Tensor创建编程实例
  8. 数据结构思维 第九章 `Map`接口
  9. Matlab多光谱kmeans聚类分割
  10. nyoj 410 how many ones?
  11. 从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
  12. MAC 使用brew安装java11并与java8共存
  13. 七位高僧大德的临终开示,非大福报者不得见
  14. 蜗蜗的毛衣花样c++
  15. MySQL中删除数据库的基本语法格式为_《MySQL数据库》SQL简介、语法格式
  16. 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...
  17. 微观机器人会使用激光脉冲穿过人体
  18. 清华姚班学生ICML一人署名论文:协作学习的鲁棒性方法
  19. 多元函数的极限,连续,偏导数,全微分之间的关系(学习笔记)
  20. zbb20190430 springboot 配置alimq

热门文章

  1. php 鼠标小手,鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once)...
  2. python统计字符串中字母个数字母无视大小写_判断一个字符串中字母的个数(无视大小写)...
  3. 数据科学与python语言——Matplotlib数据可视化基础
  4. leetcode435. 无重叠区间
  5. 7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀
  6. 太平洋大西洋水流问题如何解决?一文了解图在前端中的应用
  7. python可变参数和关键字参数位置_python中函数的默认参数和可变长参数如何排列?...
  8. 英伟达3060Ti安装GPU版本TensorFlow2.X
  9. P4781 【模板】拉格朗日插值
  10. Codeforces Round #709 (Div. 1) C. Skyline Photo dp + 单调栈优化