poj 1328
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的更多相关文章
- 贪心 POJ 1328 Radar Installation
题目地址:http://poj.org/problem?id=1328 /* 贪心 (转载)题意:有一条海岸线,在海岸线上方是大海,海中有一些岛屿, 这些岛的位置已知,海岸线上有雷达,雷达的覆盖半径知 ...
- POJ 1328 Radar Installation 贪心 A
POJ 1328 Radar Installation https://vjudge.net/problem/POJ-1328 题目: Assume the coasting is an infini ...
- POJ 1328 Radar Installation【贪心】
POJ 1328 题意: 将一条海岸线看成X轴,X轴上面是大海,海上有若干岛屿,给出雷达的覆盖半径和岛屿的位置,要求在海岸线上建雷达,在雷达能够覆盖全部岛屿情况下,求雷达的最少使用量. 分析: 贪心法 ...
- poj 1328 Radar Installation
题目链接:http://poj.org/problem?id=1328 题意:给出海上有n个小岛的坐标,求发出的信号可以覆盖全部小岛的最少的雷达个数.雷达发射信号是以雷达为圆心,d为半径的圆,雷达都在 ...
- POJ 1328 Radar Installation 贪心 难度:1
http://poj.org/problem?id=1328 思路: 1.肯定y大于d的情况下答案为-1,其他时候必定有非负整数解 2.x,y同时考虑是较为麻烦的,想办法消掉y,用d^2-y^2获得圆 ...
- Poj 1328 / OpenJudge 1328 Radar Installation
1.Link: http://poj.org/problem?id=1328 http://bailian.openjudge.cn/practice/1328/ 2.Content: Radar I ...
- poj 1328 Radar Installation(贪心)
题目:http://poj.org/problem?id=1328 题意:建立一个平面坐标,x轴上方是海洋,x轴下方是陆地.在海上有n个小岛,每个小岛看做一个点.然后在x轴上有雷达,雷达能覆盖的范 ...
- poj 1328 Radar Installation (简单的贪心)
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 42925 Accepted: 94 ...
- 贪心问题:区间覆盖 POJ 1328 Rader Installation
题目:http://poj.org/problem?id=1328 题意:给定海岛个数,雷达半径,输入各个海岛坐标,求能覆盖所有海岛的最少雷达数 题解: 1. 贪心的区间覆盖问题,尽量让每个雷达覆盖更 ...
随机推荐
- nginx 的源码安装
安装nginx之前要做的准备工作有:安装如下库 (1)gzip模块需要 zlib 库 (2)rewrite模块需要 pcre 库 (3)ssl 功能需要openssl库 还有一种简单的方法就是 yum ...
- iOS边练边学--父子控制器之自定义控制器的切换
一.如图所示的界面,按钮One.Two.Three分别对应三个控制器的view,点击实现切换.个人感觉父子控制器的重点在于,控制器的view们之间建立了父子关系,控制器不建立的话,发生在view上面的 ...
- Ajax 的缺点
1.ajax干掉了back按钮,即对浏览器后退机制的破坏.后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作.这是ajax所带来的一个比较严重的问题,因为用户往往是希望能够通过后 ...
- Java编程思想学习(九) 异常处理
java的异常处理机制可以使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续执行的问题,,当程序运行时出现异常时,系统就会自动生成一个Exception对象来通知程序 ...
- 【bzoj4010】 HNOI2015—菜肴制作
http://www.lydsy.com/JudgeOnline/problem.php?id=4010 (题目链接) 题意 给出一张无向图要求出一个拓扑序列满足1的位置最靠前 ,在保证上面的条件下使 ...
- Tarjan算法详解理解集合
[功能] Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量.强连通分量是指有向图G里顶点间能互相到达的子图.而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连 ...
- ci中与类名相同 的方法 index控制器 下面index方法 会输出两份
与类名相同的会被认为是构造方法, 会输出两次 等同于 __construct();
- IF IE
1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->2. <!--[if IE]> 所有的IE可识别 & ...
- zabbix: failed to accept an incoming connection
错误描述 查日志发现: failed to accept an incoming connection: connection from "192.168.186.132" rej ...
- Zabbix 监控 Nginx 状态
简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) shell > /usr/local/nginx/sbin/ngi ...