POJ1328 Radar Installation 【贪心·区间选点】
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 54593 | Accepted: 12292 |
Description
sea can be covered by a radius installation, if the distance between them is at most d.
We use Cartesian coordinate system, defining the coasting is the x-axis. The sea side is above x-axis, and the land side below. Given the position of each island in the sea, and given the distance of the coverage of the radar installation, your task is to write
a program to find the minimal number of radar installations to cover all the islands. Note that the position of an island is represented by its x-y coordinates.

Figure A Sample Input of Radar Installations
Input
two integers representing the coordinate of the position of each island. Then a blank line follows to separate the cases.
The input is terminated by a line containing pair of zeros
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
Source
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm> #define maxn 1010
using namespace std; struct Node {
double u, v;
friend bool operator<(const Node& a, const Node& b) {
return a.u < b.u;
}
} E[maxn];
int N, D; int main() {
int i, ok, id, ans, cas = 1;
double x, y, d, flag;
while(scanf("%d%d", &N, &D), N) {
printf("Case %d: ", cas++);
ok = 1; id = 0;
for(i = 0; i < N; ++i) {
scanf("%lf%lf", &x, &y);
if(y > D) ok = 0;
if(!ok) continue;
d = sqrt(D * D - y * y);
E[id].u = x - d;
E[id++].v = x + d;
} if(!ok) {
printf("-1\n");
continue;
} sort(E, E + id); flag = E[0].v; ans = 1;
for(i = 1; i < N; ++i) {
if(E[i].u <= flag) {
if(E[i].v <= flag) flag = E[i].v;
continue;
}
++ans; flag = E[i].v;
} printf("%d\n", ans);
}
return 0;
}
POJ1328 Radar Installation 【贪心·区间选点】的更多相关文章
- poj1328 Radar Installation —— 贪心
题目链接:http://poj.org/problem?id=1328 题解:区间选点类的题目,求用最少的点以使得每个范围都有点存在.以每个点为圆心,r0为半径,作圆.在x轴上的弦即为雷达可放置的范围 ...
- UVALive 2519 Radar Installation 雷达扫描 区间选点问题
题意:在坐标轴中给出n个岛屿的坐标,以及雷达的扫描距离,要求在y=0线上放尽量少的雷达能够覆盖全部岛屿. 很明显的区间选点问题. 代码: /* * Author: illuz <iilluzen ...
- POJ1328 Radar Installation(贪心)
题目链接. 题意: 给定一坐标系,要求将所有 x轴 上面的所有点,用圆心在 x轴, 半径为 d 的圆盖住.求最少使用圆的数量. 分析: 贪心. 首先把所有点 x 坐标排序, 对于每一个点,求出能够满足 ...
- [POJ1328]Radar Installation
[POJ1328]Radar Installation 试题描述 Assume the coasting is an infinite straight line. Land is in one si ...
- POJ - 1328 Radar Installation(贪心区间选点+小学平面几何)
Input The input consists of several test cases. The first line of each case contains two integers n ...
- POJ--1328 Radar Installation(贪心 排序)
题目:Radar Installation 对于x轴上方的每个建筑 可以计算出x轴上一段区间可以包含这个点 所以就转化成 有多少个区间可以涵盖这所有的点 排序之后贪心一下就ok 用cin 好像一直t看 ...
- zoj1360/poj1328 Radar Installation(贪心)
对每个岛屿,能覆盖它的雷达位于线段[x-sqrt(d*d-y*y),x+sqrt(d*d+y*y)],那么把每个岛屿对应的线段求出来后,其实就转化成了经典的贪心法案例:区间选点问题.数轴上有n个闭区间 ...
- POJ1328——Radar Installation
Radar Installation Description Assume the coasting is an infinite straight line. Land is in one side ...
- POJ 1328 Radar Installation 贪心 A
POJ 1328 Radar Installation https://vjudge.net/problem/POJ-1328 题目: Assume the coasting is an infini ...
随机推荐
- maven工程开始
clipse中,maven工程,更新pom.xml文件后,会让你更新工程.快捷键是Alt + F5,也可以右键工程,Maven-->update project...,这样有个问题就是默认的JR ...
- vs code 在windows10 64bit系统配置python开发环境
一.搭建 python 环境 在 VSC 中点击 F1 键,弹出控制台,输入 ext install 界面左侧弹出扩展窗格,输入python,确认,开始搜索下载发布者为Don Jayamanne 的 ...
- 2018 ICPC 徐州邀请赛 总结
Day 0 上午在高铁里面,很困但是睡不着…… 中午到矿大报道. 食堂饭菜不错,有西瓜,就是有点辣. 下午热身赛,D题队友想了个假算法……GG. 评测机摸底考试正常进行. 热身赛之后精疲力尽,赶到宾馆 ...
- ELK集群
kafka集群-------------------1. 下载wget http://mirror.rise.ph/apache/kafka/0.11.0.0/kafka_2.12-0.11.0.0. ...
- luogu P1069 细胞分裂
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细胞实 验做准备工作:培养细胞样本. Hanks 博士手里现在有 N 种细胞,编号从 1~N,一个 ...
- 四. Java继承和多态2. Java super关键字
super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类 ...
- C语言基础之for循环的使用
一.for循环格式. 1: for (语句1; 条件; 语句2) 2: 3: { 4: 5: 循环体 6: 7: } 8: 9: 具体: 10: 11: 语句1:初始化语句 12: ...
- PHP 让__get方法重新执行
<?php class A { public function __get($p) { echo "getting $p\r\n"; if(isset($this->$ ...
- win7 下注册dll文件失败
1.win7 下注册dll文件失败,提示模块“xx.dll”已加载,但找不到入口点DllRegisterServer 原因:该dll文件非可注册组件,没有包含DllRegisterServer函数,可 ...
- K均值与C均值区别
k均值聚类:---------一种硬聚类算法,隶属度只有两个取值0或1,提出的基本根据是“类内误差平方和最小化”准则: 模糊的c均值聚类算法:-------- 一种模糊聚类算法,是k均值聚类算法的推广 ...