poj 1328 Radar Installation
题目链接:http://poj.org/problem?id=1328
题意:给出海上有n个小岛的坐标,求发出的信号可以覆盖全部小岛的最少的雷达个数。雷达发射信号是以雷达为圆心,d为半径的圆,雷达都在x轴上。
分析:1.刚开始就知道这道题要用贪心做,但是一下子想不出该如何贪心。然后图图画画后发现只要求出可以覆盖每一个小岛的雷达的区间范围即可,然后可以转化为贪心区间求点问题。正好今天在复习贪心思想时在紫书上看到这个例子啦~(紫书P233)
2.贪心区间求点,就是排序后尽量选择重合区间多的地方选择放点。
3.但是还是WA了一次,因为标记数字is[]没有初始化...T^T题目有多组输入,单独测样例时答案都对,一起测多组的时候就错,还好后来还是发现了这个错误。
贴代码:
#include<iostream>
#include<cstdio>
#include<queue>
#include<cmath>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
struct QuJian
{
double l,r;
};
int cmp(QuJian a,QuJian b)
{
if(a.r==b.r)
return a.l>b.l;
return a.r<b.r;
}
QuJian qu[];
int is[];
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n,d;
int t=;
while(scanf("%d%d",&n,&d)==)
{
if(!n&&!d)
break;
int x,y;
memset(is,,sizeof(is));
double tp;
bool flag=;
for(int i=;i<n;i++)
{
scanf("%d%d",&x,&y);
tp=d*d-y*y;
if(tp<||d<)
{
flag=;
continue;
}
if(flag)
{
qu[i].l=x-sqrt(tp);
qu[i].r=x+sqrt(tp);
}
}
if(!flag)
printf("Case %d: -1\n",++t);
else
{
int ans=;
sort(qu,qu+n,cmp);
//for(int i=0;i<n;i++)
// cout<<qu[i].l<<" "<<qu[i].r<<endl;
for(int i=;i<n;i++)
{
if(is[i])
continue;
ans+=;
for(int j=i+;j<n;j++)
{
if(qu[j].l<=qu[i].r)
is[j]=;
}
}
printf("Case %d: %d\n",++t,ans);
}
}
return ;
}
poj 1328 Radar Installation的更多相关文章
- 贪心 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 (简单的贪心)
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 42925 Accepted: 94 ...
- poj 1328 Radar Installation(nyoj 287 Radar):贪心
点击打开链接 Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 43490 Accep ...
- poj 1328 Radar Installation【贪心区间选点】
Radar Installation Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) ...
- poj 1328 Radar Installation(贪心)
Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...
- POJ 1328 Radar Installation【贪心】
POJ 1328 题意: 将一条海岸线看成X轴,X轴上面是大海,海上有若干岛屿,给出雷达的覆盖半径和岛屿的位置,要求在海岸线上建雷达,在雷达能够覆盖全部岛屿情况下,求雷达的最少使用量. 分析: 贪心法 ...
- poj 1328 Radar Installation(贪心+快排)
Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...
- poj 1328 Radar Installation 排序贪心
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 56702 Accepted: 12 ...
- POJ 1328 Radar Installation(很新颖的贪心,区间贪心)
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 106491 Accepted: 2 ...
随机推荐
- 一个前端引用Facebook评论插件案例
最近公司海外的同事提了一个新的需求:那就是将Facebook的评论系统接入到公司海外网站的资讯详情页. 下面做一个简单的介绍: 首先我们登录到Facebook开发者平台:然后进入评论插件系统(http ...
- myaudio.duration为null的解决办法
放在 myaudio.addEventListener("canplay",function(){});中,就可以获取到值.
- linux文件基本属性
在Linux中第一个字符代表这个文件是目录.文件或链接文件等等. 当为[ d ]则是目录 当为[ - ]则是文件: 若是[ l ]则表示为链接文档(link file): 若是[ b ]则表示为装置文 ...
- 关于iOS 10不能跳转设置的解决办法
NSURL*url=[NSURL URLWithString:@"Prefs:root=WIFI"]; Class LSApplicationWorkspace = NSClas ...
- MVC程序中实体框架的Code First迁移和部署
01. 启用迁移 [在控制台中,输入以下命令:]enable-migrations //命令将在项目中创建一个迁移文件夹.同时文件夹中包含一个Configuration.cs文件,你可以编辑该文件来 ...
- [原创]DC-DC输出端加电压会烧毁
在调试智能钥匙连续开锁出现故障的问题排查过程中,为了对比模拟开关TS5A3166对于开锁数据通信的影响,尝试短接模拟开关的输入输出脚,未曾想乌龙了一把,错把DC-DC芯片输入输出短接了(两者都是S ...
- 浅谈html5及其新特性
什么是 HTML5? HTML5 将成为 HTML.XHTML 以及 HTML DOM 的新标准. HTML 的上一个版本诞生于 1999 年.自从那以后,Web 世界已经经历了巨变. HTML5 仍 ...
- LINQ之路 9:LINQ to SQL 和 Entity Framework(上)
在上一篇中,我们从理论和概念上详细的了解了LINQ的第二种架构“解释查询”.在这接下来的二个篇章中,我们将使用LINQ to SQL和Entity Framework来实践“解释查询”,学习这些技术的 ...
- 解决httpServletRequest.getParameter获取不到参数
用httpServletRequest.getParameter接收post请求参数,发送端content Type必须设置为application/x-www-form-urlencoded:否则会 ...
- getElementsByClassName 兼容性
getElementsByClassName是html5 新增加的一个类名.该方法可以让我们通过class属性中的类名来访问元素.不过该方法比较新,某些DOM树还没有,因此在使用中要当心.由于只有较新 ...