题目链接:http://poj.org/problem?id=1328

题解:区间选点类的题目,求用最少的点以使得每个范围都有点存在。以每个点为圆心,r0为半径,作圆。在x轴上的弦即为雷达可放置的范围。这个范围可用勾股定理求得。记录每个点的范围,然后排序,贪心。

(由于不熟悉qsort的用法,折腾了一个小时。后来清晰了:qsort 的cmp是通过正负判断(但结构体又不是),而sort的cmp是通过对错判断,即0或1。所以qsort的cmp用‘-’(结构体除外),sort的cmp用‘<’和‘>’判断,决定以后用sort,要加上<algorithem>  和 std。

代码如下:

#include<cstdio>//poj 1328 贪心
#include<cmath>
#include<cstdlib>
#include<cstring> typedef struct
{
double l,r;
}edge, *E;
edge e[1010]; int cmp(const void *a, const void*b)
{
return ((E)a)->r > ((E)b)->r?1:-1;
} int solve(int n)
{
int sum = 1;
double brim = e[0].r;
for(int i = 1; i<n; i++)
{
if(brim<e[i].l)
{
brim = e[i].r;
sum ++;
}
}
return sum;
} int main()
{
int n,B,t = 0;
double r0,x,y,r;
while(scanf("%d %lf",&n,&r0) && (n||r0))
{
B = 1;
for(int i = 0; i<n; i++)
{
scanf("%lf %lf",&x,&y);
if(y>r0)
B = 0;
r = sqrt(r0*r0-y*y);
e[i].l = x - r;
e[i].r = x + r;
} if(B)
{
qsort(e,n,sizeof(e[0]),cmp);
printf("Case %d: %d\n",++t,solve(n));
}
else
printf("Case %d: -1\n",++t);
}
return 0;
}

poj1328 Radar Installation —— 贪心的更多相关文章

  1. POJ1328 Radar Installation(贪心)

    题目链接. 题意: 给定一坐标系,要求将所有 x轴 上面的所有点,用圆心在 x轴, 半径为 d 的圆盖住.求最少使用圆的数量. 分析: 贪心. 首先把所有点 x 坐标排序, 对于每一个点,求出能够满足 ...

  2. [POJ1328]Radar Installation

    [POJ1328]Radar Installation 试题描述 Assume the coasting is an infinite straight line. Land is in one si ...

  3. POJ--1328 Radar Installation(贪心 排序)

    题目:Radar Installation 对于x轴上方的每个建筑 可以计算出x轴上一段区间可以包含这个点 所以就转化成 有多少个区间可以涵盖这所有的点 排序之后贪心一下就ok 用cin 好像一直t看 ...

  4. POJ1328 Radar Installation 【贪心&#183;区间选点】

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 54593   Accepted: 12 ...

  5. POJ 1328 Radar Installation 贪心 A

    POJ 1328 Radar Installation https://vjudge.net/problem/POJ-1328 题目: Assume the coasting is an infini ...

  6. POJ1328——Radar Installation

    Radar Installation Description Assume the coasting is an infinite straight line. Land is in one side ...

  7. POJ1328 Radar Installation 解题报告

    Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...

  8. Radar Installation(贪心)

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 56826   Accepted: 12 ...

  9. Radar Installation 贪心

    Language: Default Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42 ...

随机推荐

  1. 15、Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52001740目录(?)[-] 1添加Maven依赖 或jar包 2配置数据源相关信息 3 ...

  2. vue install 注册组件

    1.myPlugin.js文件 let MyPlugin = {}; MyPlugin.install = function (Vue, options) { // 1. 添加全局方法或属性 Vue. ...

  3. HTTP学习笔记(一)报文和连接管理

    对TCP/IP协议簇有些了解的同学们应该都知道.TCP/IP协议通过精简ISO网络7层协议(事实上了解历史渊源的话,TCP/IP协议本来目的并非简化ISO的7层协议.仅仅是因为ISO协议簇制定速度慢于 ...

  4. 【Android】怎样写一个JsBridge

    JsBridge 简单介绍 Android JsBridge 就是用来在 Android app的原生 java 代码与 javascript 代码中架设通信(调用)桥梁的辅助工具. 原文地址点这里 ...

  5. Scrapy教程

    Scrapy教程 原文地址https://doc.scrapy.org/en/latest/intro/tutorial.html 此教程我们假设你已经装好了Scrapy,如果没有请查看安装指南.. ...

  6. C#高级编程八十一天----捕获异常

    捕获异常 前面主要说了关于异常的一些基础和理论知识,没有进入到正真的异常案例,这一讲通过几个案例来描写叙述一下异常的捕获和处理. 案例代码: using System; using System.Co ...

  7. 实模式切换到保护模式,为什么要开启A20地址线(系统升级产生的兼容性问题)

    [-1]写在前面: 以下部分内容总结于 http://blog.csdn.net/ruyanhai/article/details/7181842 complementary: 兼容性是指运行在前期C ...

  8. ASP.NET RemoteAttribute远程验证更新问题

    create时使用remote特性没有任何问题, update时,问题就大了,验证唯一性时需要排除自身,如果使用这个特性将无法正确的验证. 改进思路:将自动生成的标签属性改为手写,,并在url上面加上 ...

  9. Til the Cows Come Home(最短路模板题)

    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Description Bessie is ...

  10. AWS:1.相关概念、创建云主机的过程

    概念 EC2是弹性的云计算 云主机 也即虚拟机,由分配的CPU.内存.网络和磁盘等资源组成 好处:维护成本低(主机替换).环境升级成本低 AMI:映像 创建云主机的蓝图,指定初始状态1 预装什么操作系 ...