POJ 1328 Radar Installation

POJ1328-Radar Installation 北大POJ1328-Radar Installation 解题报告+AC代码 立即下载

Radar Installation

Time Limit: 1000MS

Memory Limit: 10000K

Total Submissions: 91342

Accepted: 20438

Description

Assume thecoasting is an infinite straight line. Land is in one side of coasting, sea inthe other. Each small island is a point locating in the sea side. And any radarinstallation, locating on the coasting, can only cover d distance, so an islandin the sea can be covered by a radius installation, if the distance betweenthem is at most d. 

We use Cartesian coordinate system, defining the coasting is the x-axis. Thesea side is above x-axis, and the land side below. Given the position of eachisland in the sea, and given the distance of the coverage of the radarinstallation, your task is to write a program to find the minimal number ofradar installations to cover all the islands. Note that the position of anisland is represented by its x-y coordinates. 


 
Figure A Sample Input of Radar Installations

 

Input

The input consistsof several test cases. The first line of each case contains two integers n(1<=n<=1000) and d, where n is the number of islands in the sea and d isthe distance of coverage of the radar installation. This is followed by n lineseach containing two integers representing the coordinate of the position ofeach island. Then a blank line follows to separate the cases. 

The input is terminated by a line containing pair of zeros 

Output

For each test caseoutput one line consisting of the test case number followed by the minimalnumber of radar installations needed. "-1" installation means nosolution for that case.

Sample Input

3 2

1 2

-3 1

2 1

 

1 2

0 2

 

0 0

Sample Output

Case 1: 2

Case 2: 1

 

 

想法:贪心

统计所有岛屿在在x轴上可放置的范围

class island {
public:
	int x, y;
	double l, r;
};

isl[i].l = isl[i].x*1.0 - sqrt(d*d - isl[i].y*isl[i].y);
isl[i].r = isl[i].x*1.0 + sqrt(d*d - isl[i].y*isl[i].y);

 

然后更加island.r的大小排序,先设置一个radar在island[0].r处,然后循环比较radar和island[i]更新

for (int i = 0; i<n; i++) {
			if (isl[i].r == radar)
				continue;
			else if (isl[i].l > radar) {
				radarNum++;
				radar = isl[i].r;
			}
		}

完整代码:

//POJ 1328 Radar Installation

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#define max 1000
using namespace std;
class island {
public:
	int x, y;
	double l, r;
};
bool cmp(island a, island b) {
	if (a.r == b.r) return a.l<b.l;
	return a.r<b.r;
}

int main(int argc, char const *argv[])
{
	freopen("in.txt", "r", stdin);
	int n, d, c = 1;
	island isl[max];
	while (cin >> n >> d &&(n||d)) {
		int radarNum = 1;
		bool flag = false;
		for (int i = 0; i<n; i++) {
			cin >> isl[i].x >> isl[i].y;
			if (isl[i].y > d) { flag = true; continue; }
			isl[i].l = isl[i].x*1.0 - sqrt(d*d - isl[i].y*isl[i].y);
			isl[i].r = isl[i].x*1.0 + sqrt(d*d - isl[i].y*isl[i].y);
		}
		if (flag) { printf("Case %d: -1\n", c++); continue; }
		sort(isl, isl + n, cmp);
		double radar = isl[0].r;
		for (int i = 0; i<n; i++) {
			if (isl[i].r == radar)
				continue;
			else if (isl[i].l > radar) {
				radarNum++;
				radar = isl[i].r;
			}
		}
		printf("Case %d: %d\n", c++, radarNum);
	}
	return 0;
}

用SPSS做信效度分析 对问卷进行Cronbach’s Alpha信度检验。如果此值高于0.8,则说明信度高;如果此值介于0.7-0.8之间,则说明信度较好;如果此值介于0.6~0.7,则说明信度可接受;如果此值小于0.6,说明信度不佳。下面利用SPSS进行分析,点击分析–标度–可靠性分析选项,选中所要分析的问卷数据或题目。得到结果,我们要看这个有用的结果,当克隆巴赫Alpha系数(也可以看标准化后的)大于0.8时候,说明问卷信度较高。 阅读详情

相关推荐

别光看文档了!手把手带你用Habitat-Lab跑通第一个PointNav任务(附完整代码与避坑指南)

本文详细介绍了如何使用Habitat-Lab快速跑通第一个PointNav任务,包括环境配置、依赖安装、数据集下载与路径配置等关键步骤,并提供了完整的代码实现与常见问题排查指南。特别适合刚接触Habitat-Lab的开发者,帮助避开官方Quickstart未提及的坑,快速上手具身AI任务。

weixin_42662293的博客 272

POJ1328《Radar Installation》方法:贪心+快排

题目描述:在x轴上布置雷达,当雷达数最少的时候,使得可以包含全部的岛屿。 方法:首先将岛屿以雷达为半径,转化为x轴上的一个个区间,然后对这些区间进行排序。雷达第一次放在最左边雷达的右端点,然后对下一个雷达的左端点和之前的右端点比较,若该左端点在参照雷达右端点的左端,需要判断对应右端点在雷达右端点的左边还是右边,若在左边,则参照值被赋予该右端点,否则,继续判断下一个端点。若在右边,直接加雷达。

相门码农的专栏 475

ESP32+ST7789 LCD屏实战:5分钟搞定中文显示与图片渲染(附完整代码)

本文提供了一份详细的ESP32驱动ST7789 LCD屏幕的实战指南。通过清晰的SPI硬件连接说明、ESP-IDF框架下的初始化代码,以及图片渲染与中文字库构建的核心算法,帮助开发者快速实现中文显示与图片渲染功能,并附有完整的代码示例和性能优化技巧。

weixin_29189377的博客 440

POJ 1328 Radar Installation (贪心)

Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in the sea side. And any radar installation, locating on the

UncleJokerly 305

西门子V90 PN伺服控制核心:FB284功能块详解与实战

在工业自动化中,伺服定位控制是运动控制的基础环节,其本质是PLC通过PROFINET协议与伺服驱动器实现高速、确定性数据交互。FB284作为西门子为V90 PN定制的标准化功能块,封装了GSD映射、状态机管理与周期性PDO同步机制,将底层寄存器操作抽象为高可靠调用接口。相比MOVE指令或MC_MoveAbsolute等通用方案,FB284显著降低时序错乱风险,提升多轴同步精度与故障响应能力。它广泛应用于包装、灌装、装配等中端产线,尤其适配S7-1200/1500平台下的快速部署与现场维护。本文聚焦V90 P

weixin_42696271的博客 300

全国职业院校技能大赛-大数据应用赛项-数据挖掘-01

-----------------------推荐Top5结果如下--------------------------------------------第一条数据前10列结果展示为:----------------------------------------相同种类前10的id结果展示为:--------------------相似度top5(商品id:14,平均相似度:0.522356)相似度top1(商品id:1,平均相似度:0.983456)若属于该spu_id,则内容为1否则为0。

Eternity_04的博客 1955

POJ-1328(Radar Installation)

题意:以X轴为海岸线,X轴上方为海,海中会有一些点表示岛屿,先有扫描半径为 d 的雷达需要安装在海岸线上,现有 n 个岛屿,求最少需要半径为 d 的雷达多少个才能完全覆盖 所有的岛屿,若无解输出 -1 分析:无解的情况只能是某个岛屿的纵坐标大于 d ,而对于一个岛屿,若有解,则可以扫描到它的雷达的区间 [ L,R ] 则是 (图略丑。。) [ x-sqrt(d*d-y-y) , x+s...

Joker & Liar的博客 260

设置Solidworks导出文件的坐标系,stl坐标系平移

使用solidworks输出的模型坐标不再原点,怎么平行坐标系,这个方法很简单

weixin_45650767的博客 1万+

【题解】POJ 1328 Radar Installation(贪心)

POJ 1328 Radar Installation 原题 假设滑行是一条无限长的直线。陆地在海岸的一边,大海在另一边。每个小岛都是位于海边的一个点。而任何定位在海岸上的雷达装置,只能覆盖d距离,所以海上的岛屿可以被半径装置覆盖,如果它们之间的距离最多是d。 我们使用笛卡尔坐标系,定义滑行是x轴。海面在x轴上方,陆地面在x轴下方。考虑到每个岛屿在海上的位置,以及雷达装置的覆盖距离,您的任务是编写一个程序来查找覆盖所有岛屿的雷达装置的最小数量。注意,一个岛的位置是由它的x-y坐标表示的。 图一雷达装置的样

bu_shushu的博客 1280

比亚迪唐/秦开发者必看:253个车辆接口实战指南(附常用功能调用示例)

本文为比亚迪唐/秦开发者提供了一份详尽的车辆接口实战指南。文章聚焦于比亚迪开放的253个车辆接口,从开发环境搭建、核心状态监控到高频控制功能(如空调与充电管理),结合真实代码示例,帮助开发者快速上手并规避常见问题,高效开发车载应用。

weixin_28327051的博客 613

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

2302_78387246的博客 3594

【贪心】poj 1328 Radar Installation

poj 1328 Radar Installation(贪心)题意:x轴是无限长的一条海岸,x轴上方有很多小岛,需要安装雷达在海岸上,使雷达能扫到所有的小岛。给出小岛的坐标,和雷达扫描的半径,问最少需要多少雷达。题解:最优的方案把第一个点放在第一个雷达刚好能扫到的地方,就确定了放第一个雷达的最优位置,然后剩下第一个雷达没扫到的继续按这个方式找还需要的雷达的最优位置。那么我们需要把每个小岛在海岸的雷

学无纸巾 362

PHP与Node.js的对比及优缺点分析

PHP和Node.js是两种常用的服务器端编程语言,它们在不同的应用场景下各有优势和劣势。本文将全方位比较PHP和Node.js的特点,以及它们在编程中的优缺点,并提供相应的源代码示例供参考。需要注意的是,本文只是对PHP和Node.js的一些优缺点进行了简要介绍,实际应用中还需要考虑其他因素,如团队经验、项目规模和预算等。最终的选择应该基于全面的评估和需求分析。PHP:PHP是一种同步阻塞的编程语言,它的处理方式是一次只处理一个请求。Node.js:Node.js的性能较高,特别适合处理高并发的请求。

ByteSparkX的博客 888

POJ:1328 Radar Installation 解题思路(采用优先队列和栈实现)、注意点以及部分测试数据

POJ:1328 Radar Installation 解题思路(采用优先队列和栈实现)、注意点以及部分测试数据 本题选自PKU Online Judge(POJ)——http://poj.org/当中的第1328题 题目不难,但是比较经典,主要的思路是采用贪心算法求解,但是需要转化一下才行,网络上也有其他的博主写关于此题的思路,但是我这里主要是采用STL方式进行解题(priority_qu...

领头“洋” 703

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ1328 Radar Installation

题目链接如下 http://poj.org/problem?id=1328 题目大意: 基本信息: 如图所示,在给定一个坐标系后,坐标系的任意点(整数)都可能出现一个岛屿,如P1,P2,P3。在x轴上任意点(整数)都可能出现一个雷达。 雷达有一个探测范围d,以雷达为圆心d为半径的圆内以及圆上都是可以探测到的范围。 初始情况下: 给定岛屿的数量,以及每个岛屿的横纵坐标,然后给出雷达的探测距离。 目...

qq_36206070的博客 688

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

poj 贪心相关之1328 Radar Installation

poj 贪心相关之1328 Radar Installation

ziqi9216的博客 301

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

POJ 1328——Radar Installation

链接:http://poj.org/problem?id=1328 题解 #include<iostream> #include<algorithm> #include<cmath> using namespace std; const int MAX=1e3+50; int n,d; // n是海岛数,d是覆盖半径 ...

SmallProgramer3121的博客 218

poj-1328 Radar Installation 贪心

题目链接poj-1328 Radar Installation题目Radar InstallationTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 97615 Accepted: 21702DescriptionAssume the coasting is an infinite straight line. Land is i...

iwts 270

poj1328 Radar Installation

poj1328  Radar Installation时空限制    1000ms/10000KDescriptionAssume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. Each small island is a point locating in...

H优快云 259

POJ 1328 Radar Installation(贪心法之区间选点)

问题:Radar InstallationPOJ - 1328假定海岸线是无限长的直线。陆地位于海岸线的一侧,海洋位于另一侧。每个小岛是位于海洋中的一个点。对于任何一个雷达的安装 (均位于海岸线上),只能覆盖 d 距离,因此海洋中的小岛被雷达安装所覆盖的条件是两者间的距离不超过 d 。 我们使用卡笛尔坐标系,将海岸线定义为 x 轴。海洋的一侧位于 x 轴上方,陆地的一侧位于下方。给定海...

勉強しているユキさんです 324

POJ-1328-Radar Installation

POJ-1328-Radar Installation 传送门 这道题目是数学+贪心哦~ 题目大意:有一条无限的海岸线,海岸线的一边是海洋,海岸线的另一边是陆地,其中海洋上面有些许岛屿,现如今要安装雷达系统来检测各个岛屿情况,给出各个岛屿的坐标位置和一个雷达最多能到达的半径d(雷达能检测到的范围是半径为r的圆)问最少需要花费多少个雷达才能够把所有的岛屿都给检测到。 如果不能检测到所有岛屿,那么输出-1即可。 本题思路: 我们先来考虑特殊情况:什么时候输出-1呢? 当我们输入的d小于0或者岛屿的纵坐标的绝对值

qq_44624316的博客 267

POJ1328 Radar installation

题目链接:http://poj.org/problem?id=1328 大致题意:给定一个直角坐标系,定义x轴为海岸线,海岸线上方是海,下方是陆地。在海域零星分布一些海岛, 需要要在海岸线上安装若干个雷达覆盖这些海岛。每个雷达的覆盖半径都是相同且固定。现在给定所有海岛的坐标(x,y), 以及雷达的覆盖半径d,求可以覆盖所有海岛的最小雷达数。若没有则输出-1 解题思路: ①只要存在任意一个海岛...

Fitz的博客 341

poj1328Radar Installation

poj1328Radar Installation 原博文地址:https://blog.youkuaiyun.com/deepmindman/article/details/52278572 思路一: 1)将小岛从左到右编号1~n。 2)访问第一个小岛,根据小岛坐标计算出雷达在海岸线上的坐标范围,取该区间的最右侧建立雷达。 3) 继续访问下一座小岛,如果该小岛处于已经建立的雷达范围内,跳过。如果不在范围内,同2)建立新的雷达站。 4)访问所有的小岛,结束。 可以用以下测试样例判断: 2 2 1 1 2 2 0 0 C

weixin_49165728的博客 241

Radar Installation POJ-1328 解题报告

题目:POJ-1328http://poj.org/problem?id=1328Radar InstallationTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 102221 Accepted: 22734DescriptionAssume the coasting is an infinite straight line. ...

Chen_hsuan的博客 413
上一篇: LeetCode 40. Combination Sum II
下一篇: POJ 1068 Parencodings
朔北冥
博客等级 码龄11年 14粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值