【贪心】Radar Installation(poj 1328)
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)相关推荐
- 【POJ - 1328】Radar Installation(贪心+计算几何)安装雷达辐射岛屿
题干: Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the ot ...
- POJ Radar Installation 1328(雷达)贪心算法
问题描述 问题链接 Description Assume the coasting is an infinite straight line. Land is in one side of coast ...
- POJ 1328 Radar Installation【贪心】
POJ 1328 题意: 将一条海岸线看成X轴,X轴上面是大海,海上有若干岛屿,给出雷达的覆盖半径和岛屿的位置,要求在海岸线上建雷达,在雷达能够覆盖全部岛屿情况下,求雷达的最少使用量. 分析: 贪心法 ...
- 贪心算法—建立雷达(POJ 1328)
贪心算法--区间选点问题 这也是贪心算法的经典问题,一般情况为:有n个闭区间[ai,bj],取尽量少的点,使得每个区间内都至少有一个点. 分析 如果区间i内已经有一个点被取到,则称此区间已经被满足. ...
- POJ - 1328 Radar Installation(贪心+思维)
题目链接:点击查看 题目大意:校长想通过监控设备覆盖学校内的N座建筑物,每座建筑物被视作一个质点,在笛卡尔坐标系中给出他们的坐标(x,y),并且所有建筑物均处在x轴的上方.因为学校的供电和传输线路均沿 ...
- poj 1328 Radar Installation
题目链接:http://poj.org/problem?id=1328 题意: 设x轴为海岸,下方为陆地,上方为海.海上有n个岛屿,现在需要用雷达将所有的岛屿覆盖起来.给定岛屿个数及每个岛屿的坐标,给 ...
- Radar Installation(贪心,sort)
在poj上C++可以AC,但G++不行.杭电上更是好多的TLE,结果把cin改成scanf便可以轻松AC. #include <iostream> #include <algorit ...
- POJ-1328 Radar Installation 贪心
以每个点算出左右覆盖的雷达所在x轴范围,然后贪心计算出所需圆的个数. 当后一个点的圆心在x轴的左坐标在前一个点的右坐标的右坐标之前,则这个点就会被覆盖. 代码如下:(C++能过,G++ runtime ...
- 【POJ1328】Radar Installation(贪心,决策包容)
problem 平面直角坐标系上有n个点. 在x轴上找尽量少的点,并以这些点为圆心画一个半径为d的圆,使得给定的点都在画出来的圆里. 求最少要画的点数,如果不能输出-1. solution 一.不能的 ...
最新文章
- java中的分页 效率考虑_面试官:数据量很大,分页查询很慢,有什么优化方案?...
- 下围棋so easy ,AlphaZero开始玩量子计算!
- Python dataframe修改列顺序(pandas学习)
- pinpoint全链路监控系统安装配置
- 2020-3-20前端题目
- 将PHP文件生成静态文件源码
- 3-5Tensor创建编程实例
- 数据结构思维 第九章 `Map`接口
- Matlab多光谱kmeans聚类分割
- nyoj 410 how many ones?
- 从CentOS7默认安装的/home中转移空间到根目录/ - LVM操作简明教程
- MAC 使用brew安装java11并与java8共存
- 七位高僧大德的临终开示,非大福报者不得见
- 蜗蜗的毛衣花样c++
- MySQL中删除数据库的基本语法格式为_《MySQL数据库》SQL简介、语法格式
- 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...
- 微观机器人会使用激光脉冲穿过人体
- 清华姚班学生ICML一人署名论文:协作学习的鲁棒性方法
- 多元函数的极限,连续,偏导数,全微分之间的关系(学习笔记)
- zbb20190430 springboot 配置alimq
热门文章
- php 鼠标小手,鼠标移动至少一次时创建PHP会话(Create PHP session when mouse moved at least once)...
- python统计字符串中字母个数字母无视大小写_判断一个字符串中字母的个数(无视大小写)...
- 数据科学与python语言——Matplotlib数据可视化基础
- leetcode435. 无重叠区间
- 7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀
- 太平洋大西洋水流问题如何解决?一文了解图在前端中的应用
- python可变参数和关键字参数位置_python中函数的默认参数和可变长参数如何排列?...
- 英伟达3060Ti安装GPU版本TensorFlow2.X
- P4781 【模板】拉格朗日插值
- Codeforces Round #709 (Div. 1) C. Skyline Photo dp + 单调栈优化