poj 1328 - Radar Installation

贪心算法—建立雷达(POJ 1328) 经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容。 阅读详情

                                                                

            这道题还是有点意思的,关键在把问题进行转换,说实话使用贪心解决这道题还真不是我想出来的,关键就在想到要求出每个坐标下,雷达所设的最大左和最右位置,然后再进行贪心选择。

     思路:求出每个坐标下的雷达的最左和最右区间,对其进行非降序排序,选取第一个区间的的右边CurrentRight作为预设的第一个雷达位置,倘若下一个区间和当前有交集,则雷达可设置在交集内,此时更新CurrentRight;如果没有交集则说明需要新加一个雷达。


/*----------------------------------------------------------------------------------------
	* FileName:POJ1328.c
	* author:doodlesomething@163.com
	* date:10-29-2014
	* version:1.0
	* description:Radar Installation  POJ1328 soloved by Greedy Algorithm
-----------------------------------------------------------------------------------------*/



#include <stdio.h>
#include <math.h>


#define N 10

typedef struct {
	double left; 
	double right;
}Pos;

//这样设置是为了理解上的方便
typedef struct {
	int x;
	int y;
}Posi;



/*
* @description:quick sort by the left asc
*/
void QuickSort(Pos P[],int low,int high) {
	int first,last;
	Pos temp;

	if(low >= high) {
		return;
	}

	first = low;
	last = high;
	temp = P[0];

	while(first < last) {
		while(first < last && temp.left <= P[last].left)
			last--;
		P[first] = P[last];

		while(first < last && temp.left >= P[first].left)
			first++;
		P[last] = P[first];
	}

	P[first] = temp;

	QuickSort(P,low,first - 1);
	QuickSort(P,first + 1,high);

}


int main() {
	
	int n,dis,i,flag,total;
	double CurrentRight;
	Pos P[1000];
	Posi S[1000];

	flag = 1;
	total = 1;

	printf("please enter n and dis:");
	scanf("%d,%d",&n,&dis);
	printf("please enter each value:\n");
	for(i = 0; i < n; i++) {
		scanf("%d%d",&S[i].x,&S[i].y);
		if(S[i].y > dis)
			flag = 0;
	}


	if(!flag) {
		printf("result:-1\n");
	}
	else {
		for(i = 0; i < n ; i++) {
			P[i].left =  S[i].x - sqrt( (double) (dis * dis - S[i].y * S[i].y)); 
			P[i].right = S[i].x + sqrt( (double) (dis * dis - S[i].y * S[i].y));
		}

		//QuickSort
		QuickSort(P,0,n - 1);

		CurrentRight = P[0].right;

		for( i = 1; i < n; i ++) {
			if(P[i].left > CurrentRight) {
				total++;
				CurrentRight = P[i].right;
			}
			else {
				CurrentRight = P[i].right >  CurrentRight ? CurrentRight : P[i].right;
			}
		}
		//output
		printf("%d\n",total);
	}


	return 0;
}


/*
Sample Input

3,2
1 2
-3 1
2 1

Sample Output
total:2



Sample Input
1,2
0 2

Sample Output
total:1

*/



POJ 1328 java AC POJ 1328 java做!雷达问题!java版本!AC答案~ 立即下载

相关推荐

POJ1328-Radar Installation

北大POJ1328-Radar Installation 解题报告+AC代码

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

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

bu_shushu的博客 1280

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了

当你在Coding Block中添加自定义字段的时候

matinal 當冬夜漸暖 。公众号:matinal 4576

【贪心算法】POJ1328

【贪心算法】POJ1328

m0_71009069的博客 535

深信服AC1000-B1200到手第一步:从开箱到激活上网的保姆级图文指南

本文提供深信服AC1000-B1200企业级行为管理设备的详细开局使用指南,涵盖从开箱验机、物理连接到网络配置、安全加固及设备激活的全流程。通过图文并茂的步骤解析,帮助用户快速完成设备初始化并实现安全上网,特别适合初次接触该设备的网络管理员参考。

weixin_42546392的博客 547

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 457

POJ 1328 贪心算法

本文系博主原创,转载请注明地址:https://blog.youkuaiyun.com/coder_what/article/details/82690880 雷达安装 时间限制: 1000MS 内存限制: 10000K 提交总数: 109120 接受: 24128 描述 假设滑行是无限直线。土地位于海岸的一侧,海洋位于另一侧。每个小岛都位于海边。并且任何...

王星星 3754

Python实现飞书机器人定时发送文本、图片等群消息

python实现飞书群自动发送告警消息

tyh_keephunger的博客 2万+

【贪心】poj 1328 Radar Installation

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

学无纸巾 361

别再只会用串口助手了!手把手教你用手机App调试HC-05蓝牙模块(STM32F103实战)

本文详细介绍了如何利用手机App调试HC-05蓝牙模块与STM32F103的无线连接,突破传统串口助手的限制。通过实战指南,开发者可以掌握移动性测试、实时监控和快速验证等高效调试技巧,优化蓝牙透传的稳定性和性能。

weixin_33670786的博客 428

Autoware.universe部署03:与Carla(二进制版)联调

本文介绍了 Autoware.universe 与 Carla 二进制版的联调过程。Autoware.universe 是一个开源的自动驾驶软件平台,而 Carla 则是一个用于自动驾驶仿真的开源工具。将这两者联调起来可以在仿真环境中测试和验证 Autoware.universe 的功能和性能,为自动驾驶系统的开发和测试提供有力支持。

zardforever123的博客 7368

POJ 1328 Radar Installation

POJ 1328 Radar Installation(贪心) Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 101806 Accepted: 22654 Description Assume the coasting is an infinite straight line...

博学 笃志 切问 近思 200

996引擎 - 【任务系统】和【cfg_newtask.xls】

996这个任务系统仅用于控制主界面左上角的【任务列表】,不包含具体任务的业务逻辑。任务列表有多个任务时支持上下滑动,可以调用接口将指定任务【置顶】任务列表中,每个任务一行,分标题和(当前状态对应的)内容两部分,点击能触发事件具体的任务系统业务逻辑,需要自己写代码实现。(配合996提供的任务接口和触发,实现更新任务列表)

灵台方寸山斜月三星洞 1428

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

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

领头“洋” 703

手把手教你完成YOLOv10 PySide6目标检测界面搭建,使用Qt6设计YOLOv10检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

手把手教你完成YOLOv10 PySide6目标检测界面搭建,使用Qt6设计YOLOv10检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1733

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ1328 Radar Installation

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

qq_36206070的博客 688

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

poj 贪心相关之1328 Radar Installation

poj 贪心相关之1328 Radar Installation

ziqi9216的博客 301

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

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

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

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的博客 240

POJ1328 Radar installation

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

Fitz的博客 340

张三的雷达:C++用贪心算法解POJ1328_Radar Installation问题

POJ1328_Radar Installation 题目链接: POJ1328_Radar Installation 简单理解一下题目: 张三所在的地方有一个无限延伸的海岸线,如图所示(图源自题目), x轴上方是海,下方是陆地,海上有一些分散的小岛,张三为了保证每一个小岛都在监测范围内,要在海岸线上放一些雷达,每个雷达的探测范围是直径为d的圆形区域,由于张三比较抠,他想尽可能用比较少的雷达来探测所有的小岛,那么在给定小岛个数n、位置以及探测范围d的情况下,请你算出最少的雷达数,如果无法保证所有小岛都探测

只想AC的博客 810
上一篇: poj 2709 - Painter
下一篇: poj 2586 --水题
doodlesomething
博客等级 码龄13年 53粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值