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. 贪心的区间覆盖问题,尽量让每个雷达覆盖更 ...
随机推荐
- iOS开发小技巧--父子控制器练习中get到的技能,控制核心动画的范围
一.未经过处理的动画是这样的,自定义的导航按钮也一起跟着转起来了. 二.自己想要的效果 三.实现这种效果的思想:核心动画要添加到view的layer上面,刚开始的情况是讲核心动画添加到了整个大view ...
- BZOJ SCOI2005骑士精神
裸IDA*,ans从1到15循环来限制搜索深度. #include<cstdio> #include<cstring> #include<algorithm> us ...
- IM通信协议逆向分析、Wireshark自定义数据包格式解析插件编程学习
相关学习资料 http://hi.baidu.com/hucyuansheng/item/bf2bfddefd1ee70ad68ed04d http://en.wikipedia.org/wiki/I ...
- HD1532Drainage Ditches(最大流模板裸题 + 邻接表)
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- java中获取路径中的空格处理(%20)问题
在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径错误. 解决办法: String path = Parameter.class.getReso ...
- nginx 启动/停止/重启 BAT
cls @ECHO OFF SET NGINX_PATH=D: SET NGINX_DIR=D:\Hack\nginx\color 0a TITLE Nginx 管理程序 Power By AntsG ...
- 使用 PHP 和 Apache Solr 实现企业搜索
原文链接:http://www.ibm.com/developerworks/cn/opensource/os-php-apachesolr/ http://blog.csdn.net/hzcyc ...
- apache-tomcat-5.5.35.搭建实战
tar xf apache-tomcat-5.5.35.tar -C /usr/local/ 需要安装JDK支持,可借鉴:http://www.cnblogs.com/zhoulf/archive/2 ...
- MySQL各版本的区别(转)
MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择. 1. MySQL Community Server 社区版本,开源免费, ...
- WPF RichTextBox的使用总结
RichTextBox内容模型 RichTextBox 支持基于块的内容模型. RichTextBox 的内容属性为 Blocks,这是 Paragraph 元素的集合Paragraph元素可包含 ...