Poj1328Radar Installation雷达安装
经典贪心,转化为问题为,对于所有的区间,求最小的点数能使每个区间都至少有一个点。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
const int MAXN=100000+5;
const double eps=0.000001;
struct seg
{
	double l,r;
	bool operator < (const seg& b)const
	{
		if(l==b.l)
			return r<b.r;
		return l<b.l;
	}
}e[MAXN];
int cs;
int main()
{
	int n,R;
	while(~scanf("%d%d",&n,&R))
	{
		if(n==0&&R==0)
			 break;
		int x,y;
		bool f=0;
		memset(e,0,sizeof e);
		for(int i=1;i<=n;++i)
		{
			scanf("%d%d",&x,&y);
			if(y==R)
			{
				e[i]=(seg){1.0*x,1.0*x};
			}
			else if(y<R)
			{
				double t=sqrt(R*R-y*y);
				e[i]=(seg){x-t,x+t};
			}
			else
				f=1;
		}
		int ans;
		if(f)
			ans=-1;
		else
		{
			sort(e+1,e+n+1);
			ans=1;
			double t=e[1].r;
			for(int i=2;i<=n;++i)
			{
				if(e[i].l>t)
				{
					++ans;
					t=e[i].r;
				}
				if(e[i].r<t)
					t=e[i].r;
			}
		}
		printf("Case %d: %d\n",++cs,ans);
	}
	return 0;
}
												
											Poj1328Radar Installation雷达安装的更多相关文章
- 洛谷 P1325 雷达安装 解题报告
		
P1325 雷达安装 题目描述 描述: 假设海岸线是一条无限延伸的直线.它的一侧是陆地,另一侧是海洋.每一座小岛是在海面上的一个点.雷达必须安装在陆地上(包括海岸线),并且每个雷达都有相同的扫描范围d ...
 - 落谷p1325雷达安装(计算几何)
		
传送门 //p1325雷达安装 //很明显雷达应该安装在海岸线上 //而为了满足一个点被覆盖那在区间[x - sqrt(d ^ 2 - y ^ 2), x + sqrt(d ^ 2 - y ^ 2)] ...
 - there are no packages available for installation插件安装问题和如何配置浏览器的快捷键
		
sublime text3 在安装插件时,有时候会莫名其妙的弹出如下所示的弹窗(之前遇到了,但写的时候不知道为什么我的又可以了,这个只是出现了这个问题之后可以尝试的一个解决办法,图片就从网上找了一个) ...
 - luogu P1325 雷达安装
		
题目描述 描述: 假设海岸线是一条无限延伸的直线.它的一侧是陆地,另一侧是海洋.每一座小岛是在海面上的一个点.雷达必须安装在陆地上(包括海岸线),并且每个雷达都有相同的扫描范围d.你的任务是建立尽量少 ...
 - poj1328Radar Installation 贪心
		
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64472 Accepted: 14 ...
 - 【luogu1325】雷达安装--贪心
		
题目描述 描述: 假设海岸线是一条无限延伸的直线.它的一侧是陆地,另一侧是海洋.每一座小岛是在海面上的一个点.雷达必须安装在陆地上(包括海岸线),并且每个雷达都有相同的扫描范围d.你的任务是建立尽量少 ...
 - POJ1328Radar Installation(区间点覆盖问题)
		
Radar Installation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 68597 Accepted: 15 ...
 - POJ1328Radar Installation
		
http://poj.org/problem?id=1328 题的大意就是说在海里有小岛,坐标位置会给出,需要岸边的雷达覆盖所有的小岛,但雷达的覆盖范围有限,所以,需要最少的雷达覆盖所有的小岛,但若是 ...
 - Windows平台下,Scrapy Installation,安装问题解决
		
按理说直接:pip install scrapy 就可以成功,但是出现了错误"libxml/xpath.h: No such file or directory" "er ...
 
随机推荐
- 注解配置springMVC
			
在随笔“springMVC项目配置文件”的基础上,进行优化,使用注解配置,控制器类得以简化: 一.注解配置springMVC 1.在HelloController类中,去除实现的Controller接 ...
 - Bell数
			
事实上,\[e^{(e^t-1)x}=\sum_{k=0}^{\infty}\frac{B_k(x)}{k!}.\]\[B_n(x)=x\sum_{k=1}^{n}\binom{n-1}{k-1}B_ ...
 - HDU - 5532 Almost Sorted Array (最长非严格单调子序列)
			
We are all familiar with sorting algorithms: quick sort, merge sort, heap sort, insertion sort, sele ...
 - linux基础之CnetOS安装
			
CentOS启动流程 POST-->boot sequence(bios)--> bootloader(mbr)-->kernel(ramdisk)-->rootfs(ro)- ...
 - @Configuration@Bean
			
https://blog.csdn.net/u014199143/article/details/80692685 @Configuation等价于<Beans></Beans> ...
 - [Python]jieba切词 添加字典 去除停用词、单字 python 2020.2.10
			
源码如下: import jieba import io import re #jieba.load_userdict("E:/xinxi2.txt") patton=re.com ...
 - linux - python2.6.6 升级到python2.7.14
			
一.升级 Python 2.7.14 版本 1. 准备安装包,系统是最小化安装 # 下载安装依赖的相关包[root@vip ~]# yum install vim gcc make wget -y [ ...
 - java 学习(day2) 时钟类
			
看过python的面向对象,所以入手java总的来说还是比较快的. 看视频学习之后写了一个简单的时钟 一个时钟有两部分组成小时和分钟.再大一些还有月,日. 分析一下就是,上述这些属性到达一个值之后,就 ...
 - 清除ios系统alert弹出框的域名
			
清除ios系统alert弹出框的域名 <script> window.alert = function(name) { var iframe = document.createElemen ...
 - AngularJS中transclude用法详解
			
这篇文章主要介绍了AngularJS中transclude用法,详细分析了transclude的具体功能.使用技巧与相关注意事项,需要的朋友可以参考下 本文实例讲述了AngularJS中transcl ...