http://poj.org/problem?id=1328

题意:题目大概意思就是有一群孤岛,想要用雷达来监视这些岛屿,但雷达的范围是有限的,所以需要多个雷达,题目就是要你解决最少需要几个雷达,注意雷达都是在陆地上的,一个贪心。

解题思路:就是以那些岛屿的坐标为圆心,雷达的距离为半径做圆,在与陆地也就是X轴相交的那一部分都可以放置雷达。

 #include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <math.h> using namespace std; struct In{ //岛屿的位置
int x;
int y;
}s[];
struct iN //以岛屿的位置为圆心,雷达的最远距离为半径所做的圆与X轴的两个焦点的坐标
{
float x;
float y;
}loc[];
bool mark[]; //用来标记岛屿是否被雷达覆盖 int cmp(const void* _a,const void* _b) //排序,由于解出来的loc.x和loc.y都是浮点型的,所以要进行数据类型的强制转换
{
float *a=(float*)_a;
float *b=(float*)_b;
if(a[]-b[]<) return -;
else if(a[]==b[]) return ;
else return ;
} int m,n;
int main()
{
int i,j,ans,flog,sum=;
while(scanf("%d%d",&m,&n),m!=||n!=)
{
memset(mark,false,sizeof(mark)); //对mark进行初始化
sum++;
for(i=;i<m;i++)
scanf("%d%d",&s[i].x,&s[i].y);
for(i=,flog=;i<m;i++)
{
if((n*n)-(s[i].y*s[i].y)<||n<=) { //如果到达X轴的距离大于雷达的最大距离,则不能覆盖,跳出
flog=;
break;
}
loc[i].x=s[i].x-sqrt((n*n)-(s[i].y*s[i].y));
loc[i].y=s[i].x+sqrt((n*n)-(s[i].y*s[i].y));
}
qsort(loc,m,sizeof(loc[]),cmp);
if(flog==) printf("Case %d: -1\n",sum);
else {
for(i=,ans=;i<m;i++)
{
if(!mark[i])
{
mark[i]=true;
for(j=;j<m;j++)
{
if(loc[i].y>=loc[j].x&&!mark[j])
{
mark[j]=true;
}
}
ans++;
}
}
printf("Case %d: %d\n",sum,ans);
}
}
return ;
}

poj 1328的更多相关文章

  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【贪心】

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

  4. poj 1328 Radar Installation

    题目链接:http://poj.org/problem?id=1328 题意:给出海上有n个小岛的坐标,求发出的信号可以覆盖全部小岛的最少的雷达个数.雷达发射信号是以雷达为圆心,d为半径的圆,雷达都在 ...

  5. POJ 1328 Radar Installation 贪心 难度:1

    http://poj.org/problem?id=1328 思路: 1.肯定y大于d的情况下答案为-1,其他时候必定有非负整数解 2.x,y同时考虑是较为麻烦的,想办法消掉y,用d^2-y^2获得圆 ...

  6. Poj 1328 / OpenJudge 1328 Radar Installation

    1.Link: http://poj.org/problem?id=1328 http://bailian.openjudge.cn/practice/1328/ 2.Content: Radar I ...

  7. poj 1328 Radar Installation(贪心)

    题目:http://poj.org/problem?id=1328   题意:建立一个平面坐标,x轴上方是海洋,x轴下方是陆地.在海上有n个小岛,每个小岛看做一个点.然后在x轴上有雷达,雷达能覆盖的范 ...

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

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

  9. 贪心问题:区间覆盖 POJ 1328 Rader Installation

    题目:http://poj.org/problem?id=1328 题意:给定海岛个数,雷达半径,输入各个海岛坐标,求能覆盖所有海岛的最少雷达数 题解: 1. 贪心的区间覆盖问题,尽量让每个雷达覆盖更 ...

随机推荐

  1. Webform之Repeater中的单选和多选的应用以及前段JS的实现

    HTML中的代码 <asp:Repeater ID="Repeater1" runat="server"> <HeaderTemplate&g ...

  2. startsWith

    if (!String.prototype.startsWith) { Object.defineProperty(String.prototype, 'startsWith', { enumerab ...

  3. TinyMCE(富文本编辑器)

    [转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 官网演示以及示例代码:https://www.tinymce.com/docs/demo/image-tools/ 转自:http:/ ...

  4. WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

    WEB版一次选择多个文件进行批量上传(Plupload)的解决方案  转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...

  5. RHCS

    简介 Red Hat Cluster Suite :红帽子集群套件 高可用性.高可靠性.负载均衡.存储共享 高可用集群是 RHCS 的核心功能.当应用程序出现故障,或者系统硬件. 网络出现故障时,应用 ...

  6. Bzoj1115 石子游戏Kam

    这是道权限题,差评. 题目说明引自ZYF-ZYF Description 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数.两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证 ...

  7. OracleOraDb10g_home1TNSListener无法启动

    1:“本地计算机上的OracleOraDb10g_home1TNSListener服务启动后停止.某些服务在未由其他服务或程序使用时将自动停止.” 解决办法:动态ip,服务 OracleOraDb10 ...

  8. Unix 目录结构的来历

    Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在.Unix 目录结构的来历举例来说,根目录下面有一个子目录/bin,用于存放二进制程序.但是,/usr子目录下面还有/usr/ ...

  9. 操作haproxy配置文件教师版

    作用: 可查,可增,可删,可修改 #_*_coding:utf-8_*_ import os def file_handle(filename,backend_data,record_list=Non ...

  10. JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求

    JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写 ...