ZOJ地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=360

POJ地址:http://poj.org/problem?id=1328

解题思路:贪心

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <stdlib.h>
 4 #include <math.h>
 5 
 6 struct P{
 7     double x, y, left, right;
 8 }p[];
 9 
 int cmp(const void *a, const void *b){
     struct P *c = (struct P *)a;
     struct P *d = (struct P *)b;
     return c->left > d->left ?  : -;
 }
 
 int main(){
     int n, i, j, r, ans, lose, Case = ;
     double d, x, dis, high;
     while(scanf("%d %d", &n, &r) != EOF){
         if(n ==  && r == ){
             break;
         }
         lose = ;
         d = (double)r;
         for(i = ; i < n; i++){
             scanf("%lf %lf", &p[i].x, &p[i].y);
             if(p[i].y > d){                                     //如果某个点的y左边大于雷达半径,那么一定无法覆盖
                 lose = ;
             }
             dis = sqrt(d * d - p[i].y * p[i].y);
             p[i].left = p[i].x - dis;
             p[i].right = p[i].x + dis;
         }
         if(lose == ){
             printf("Case %d: -1\n", Case++);
             continue;
         }
         qsort(p, n, sizeof(p[]), cmp);
         ans = ;
         high = p[].right;      //令第一个点的右端点为最远点
         for(i = ; i < n; i++){
             if(p[i].left <= high){
                 high = p[i].right < high ? p[i].right : high;//如果该点的左端点在最远点内,更新最远点
             }
             else{               //如果左端点不在最远点内,雷达数+1,更新最远点
                 ans++;
                 high = p[i].right;
             }
         }
         printf("Case %d: %d\n", Case++, ans);
     }
     return ;

53 }

ZOJ-1360 || POJ-1328——Radar Installation的更多相关文章

  1. 贪心 POJ 1328 Radar Installation

    题目地址:http://poj.org/problem?id=1328 /* 贪心 (转载)题意:有一条海岸线,在海岸线上方是大海,海中有一些岛屿, 这些岛的位置已知,海岸线上有雷达,雷达的覆盖半径知 ...

  2. POJ 1328 Radar Installation 贪心 A

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

  3. poj 1328 Radar Installation (简单的贪心)

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 42925   Accepted: 94 ...

  4. poj 1328 Radar Installation(nyoj 287 Radar):贪心

    点击打开链接 Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 43490   Accep ...

  5. poj 1328 Radar Installation【贪心区间选点】

    Radar Installation Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) ...

  6. poj 1328 Radar Installation(贪心)

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

  7. POJ 1328 Radar Installation【贪心】

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

  8. poj 1328 Radar Installation(贪心+快排)

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

  9. poj 1328 Radar Installation 排序贪心

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

  10. POJ 1328 Radar Installation(很新颖的贪心,区间贪心)

    Radar Installation Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 106491   Accepted: 2 ...

随机推荐

  1. 企业级SpringBoot与Dubbo的使用方式

    企业级SpringBoot与Dubbo的使用方式 SpringBoot越来越热门以至于达到满大街可见的程度,而Dubbo这个基于二进制的微服务框架又捐献给Apache孵化,如果不会如何使用那么是不是很 ...

  2. ZOJ3164【背包问题(好题)】

    %%%%%%%%%%%%%%%岐爷 这一发从来没写过这么旺盛的背包问题... 想法很多,但是好难执行. 题意: 有N种饼干,1-N 每种最多想买Ki个,ki等于0的话没有上界 对于第i种饼干的权值是E ...

  3. SQL 语句(原生)

    //查 //查询表里的所有数据 select * from 表名 //根据id等字段查询数据 select * from 表名 where 字段 = 值 or 字段 = 值 (例):select * ...

  4. Android NDK开发指南(一) Application.mk文件

    http://www.cnblogs.com/yaozhongxiao/archive/2012/03/06/2381586.html Application.mk目的是描述在你的应用程序中所需要的模 ...

  5. 3DMAX 1快捷键及常用操作

    开启,关闭快捷键 ,使用快捷键时要按下这个按钮 快捷键查看与修改 自定义-自定义用户界面(cutomize user interface):设置和查看快捷键 位置变换 Z: 复位---物体被移动飞了的 ...

  6. 【OpenJ_Bailian - 3468】电池的寿命(贪心)

    电池的寿命 Descriptions: 小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电.为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同 ...

  7. 学习Mahout(二)

    继续上一篇博客. 这篇博客介绍如何跑一下mahout自带的Hello world程序 我将mahout 安装在/opt/hadoop/mahout-distribution-0.9 cd /opt/h ...

  8. mysql之SQL入门与提升(一)

    一.基本的增删改查 1.1首先建一张表 DROP TABLE IF EXISTS `websites`;CREATE TABLE `websites` ( `id` int(11) NOT NULL ...

  9. 使用JMETER进行REST API测试(分步指南)

    我确定你在这里是因为你需要加载测试Json Rest API.这并不奇怪,因为Rest API现在越来越受欢迎. 这本指南的目的:帮助您进行负载测试一个Json的 REST API 通过一个具体的例子 ...

  10. 牛客寒假6-J.迷宫

    链接:https://ac.nowcoder.com/acm/contest/332/J 题意: 你在一个 n 行 m 列的网格迷宫中,迷宫的每一格要么为空,要么有一个障碍. 你当前在第 r 行第 c ...