算法-贪心-112. 雷达设备

题目

假设海岸是一条无限长的直线,陆地位于海岸的一侧,海洋位于另外一侧。

每个小岛都位于海洋一侧的某个点上。

雷达装置均位于海岸线上,且雷达的监测范围为 d,当小岛与某雷达的距离不超过 d 时,该小岛可以被雷达覆盖。

我们使用笛卡尔坐标系,定义海岸线为 x轴,海的一侧在 x轴上方,陆地一侧在 x 轴下方。

现在给出每个小岛的具体坐标以及雷达的检测范围,请你求出能够使所有小岛都被雷达覆盖所需的最小雷达数目。

输入格式

第一行输入两个整数 n 和 d,分别代表小岛数目和雷达检测范围。

接下来 n 行,每行输入两个整数,分别代表小岛的 x,y 轴坐标。

同一行数据之间用空格隔开。

输出格式

输出一个整数,代表所需的最小雷达数目,若没有解决方案则所需数目输出 −1−1。

数据范围

1≤n≤1000,
−1000≤x,y≤1000

输入样例:
3 2
1 2
-3 1
2 1
输出样例:
2

思路

  1. 数据范围是1000,所以只要不超过n^2就行
  2. 反向考虑:对于小岛来说,雷达要放在什么位置上才能照到小岛 ==》变成考虑区间
  3. 给定若干区间,最少选多少个点可以使得每个区间上至少选一个点;
  4. 贪心策略:
    1. 将所有区间按右端点排序
    2. 按照排序的顺序,扫描每个线段:
      1. 情况1:如果上一个点不在区间中,则选右端点;(右端点最有可能覆盖到后面的区间)
      2. 情况2:如果上一个点在区间中,则跳过;
  5. Python中的lambda 
    Python lambda(匿名函数) | 菜鸟教程 (runoob.com)

代码

import math
n, d = map(int, input().split())  
segments = []  
failed = False  for _ in range(n):  x, y = map(int, input().split())  if y > d:  failed = True  break  else:  lens= math.sqrt(d**2 - y**2)  segments.append((x - lens, x + lens))  if failed:  print("-1")  
else:  segments.sort(key=lambda seg: seg[1])  # 使用lambda表达式按照右端点排序  cnt = 0  last = -1e20  for l, r in segments:  if last < l:  cnt += 1  last = r  print(cnt)  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/738186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型:Large Language Models Are Human-Level Prompt Engineers概述

研究内容 如何通过prompt&#xff0c;在不进行微调大语言模型的前提下&#xff0c;增加大语言模型的表现 研究动机 prompt非常有用&#xff0c;但是人工设置的非常不自然&#xff1b;因此提出了要自动使用大语言模型自己选择prompt&#xff1b;取得了很好的效果。 作者主要…

python实现生成树

生成树 生成树&#xff08;Spanning Tree&#xff09;是一个连通图的生成树是图的极小连通子图&#xff0c;它包含图中的所有顶点&#xff0c;并且只含尽可能少的边。这意味着对于生成树来说&#xff0c;若砍去它的一条边&#xff0c;则会使生成树变成非连通图&#xff1b;若给…

Git LFS【部署 01】Linux环境安装git-lfs及测试

Linux系统安装git-lfs及测试 1.下载2.安装3.测试4.总结 Git LFS&#xff08;Large File Storage&#xff09;是一个用于Git版本控制系统的扩展&#xff0c;它专门用来管理大型文件&#xff0c;如图像、音频和视频文件。 1.下载 安装包下载页面&#xff1a;https://github.com/…

web3D三维引擎(Direct3D、OpenGL、UE、U3D、threejs)基础扫盲

Hi&#xff0c;我是贝格前端工场的老司机&#xff0c;本文介绍文web3D的几个引擎&#xff0c;做个基础扫盲&#xff0c;如果还不能解决问题&#xff0c;可以私信我&#xff0c;搞私人订制呦。 三维引擎是指用于创建和渲染三维图形的软件框架。它们通常提供了图形处理、物理模拟…

npm yarn 一起使用报错

项目记录&#xff0c;具有独特性&#xff0c;仅供参考 项目好好的运行&#xff0c;前一天装个测试工具包&#xff0c; 突然就不行了&#xff0c;所有的项目都安装失败&#xff0c;有时候单独安装一个包可以&#xff0c;有时候又不行了&#xff0c;错误也是五花八门 疯狂百度&…

AI概念之人工智能、机器学习和数据挖掘之间的联系与区别

摘要&#xff1a; 本文深入探讨人工智能、机器学习和数据挖掘之间的联系与区别&#xff0c;涵盖基础知识、工作流程、需求分析、设计方案、实现步骤、代码示例、技巧与实践、常见问题与解答等内容&#xff0c;旨在帮助读者全面了解这三者之间的异同&#xff0c;并学会如何在实…

AIGC: 2 语音转换新纪元-Whisper技术在全球客服领域的创新运用

背景 现实世界&#xff0c;人跟人的沟通相当一部分是语音沟通&#xff0c;比如打电话&#xff0c;聊天中发送语音消息。 而在程序的世界&#xff0c;大部分以处理字符串为主。 所以&#xff0c;把语音转换成文字就成为了编程世界非常普遍的需求。 Whisper 是由 OpenAI 开发…

excel 将缺失的单元个填充为NA

在Excel中&#xff0c;有多种方法可以将缺失的单元格填充为"NA"或其他指定的值。以下是一些常用的方法&#xff1a; 方法1&#xff1a;使用“查找和选择”填充缺失值 (推荐) 打开Excel文件&#xff0c;并选择包含缺失值的数据区域。在“开始”标签页中&#xff0c;…

PostgreSQL索引篇 | GIN索引 (倒排索引)

GIN索引 倒排索引 PostgreSQL版本为8.4.1 &#xff08;本文为《PostgreSQL数据库内核分析》一书的总结笔记&#xff0c;需要电子版的可私信我&#xff09; 索引篇&#xff1a; PostgreSQL索引篇 | BTreePostgreSQL索引篇 | GiST索引PostgreSQL索引篇 | Hash索引PostgreSQL索引…

汽车软件市场迅猛扩张,Perforce Helix Core与Helix IPLM助力汽车软件开发的版本控制及IP生命周期管理

汽车软件世界正处于持续变革和转型之中。从自动驾驶汽车到电动汽车和先进的驾驶辅助系统&#xff0c;汽车软件的集成度和复杂性不断提升。 据美国电气与电子工程师协会的研究&#xff0c;如今大多数汽车都集成了超过1亿行代码&#xff0c;而仅仅十年前&#xff0c;这种水平的汽…

软件杯 垃圾邮件(短信)分类算法实现 机器学习 深度学习

文章目录 0 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 垃圾邮件(短信)分类算…

若依框架mybatis分页失效,只能查出10条数据

问题背景 在使用MyBatis-Plus进行项目开发时&#xff0c;遇到了分页查询功能失效的问题。具体表现是在执行分页查询后&#xff0c;始终只能获取到10条数据&#xff0c;同时返回的总记录数也不准确。经过排查发现&#xff0c;这是因为误用了selectVoList方法&#xff0c;该方法…

ubuntu 18.04安装教程(详细有效)

文章目录 一、下载ubuntu 18.04镜像二、安装ubuntu1. 点击下载好的Vmware Workstation&#xff0c;点击新建虚拟机&#xff0c;选择 “自定义(高级)”&#xff0c;之后下一步。2. 默认配置&#xff0c;不需要更改&#xff0c;点击下一步。3. 选择 “安装程序光盘映像文件(iso)(…

k8s Secret配置资源,ConfigMap 存储配置信资源管理详解

目录 一、Secret 概念 三种Secret类型 pod三种使用secret的方式 应用场景&#xff1a;凭据&#xff1a; 二、 示例 2.1、用kubectl create secret命令创建 Secret 创建Secret&#xff1a; 查看Secret列表&#xff1a; 描述Secret&#xff1a; 2.2、用 base64 编码&…

Windows环境部署Hadoop-3.3.2和Spark3.3.2

目录 一、Windows环境部署Hadoop-3.3.2 1.CMD管理员解压Hadoop压缩包 2.配置系统环境变量 3.下载hadoop winutils文件 4.修改D:\server\hadoop-3.3.2\etc\hadoop目录下的配置文件 (1)core-site.xml (2)hdfs-site.xml (3)mapred-site.xml (4)yarn-site.xml (5)workers…

Oracle 层级查询(Hierarchical Queries)

如果一张表中的数据存在分级&#xff08;即数据间存在父子关系&#xff09;&#xff0c;利用普通SQL语句显示数据间的层级关系非常复杂&#xff0c;可能需要多次连接才能完整的展示出完成的层级关系&#xff0c;更困难的是你可能不知道数据到底有多少层。而利用Oracle的层级查询…

VSCode单机活动栏图标无法收起

如果活动栏为展开状态&#xff0c;单击活动栏图标可以正常收起&#xff0c;但无法通过再次单击打开&#xff0c;解决方案如下&#xff1a; 设置->工作台->外观&#xff1a; Activity Bar:Icon Click Behavior: 切换为默认的toggle

1. 使用MyBatis的ResultHandler实现流式查询,避免大数据量一次加载

文章目录 Mybatis的ResultHandler1. 待解决问题2. ResultHandler简介3. 实现流式查询3.1. 创建一个实现ResultHandler接口的类&#xff0c;实现handleResult方法。在该方法中&#xff0c;我们可以处理每一条查询结果。3.2. 在Mapper接口中&#xff0c;使用select方法并指定Resu…

嵌入式面经-TCP/UDP

TCP编程是什么 指使用TCP&#xff08;传输控制协议&#xff09;进行网络通信的编程方式&#xff0c;TCP是一种可靠的、面向连接的协议 TCP和UDP的区别是什么 TCP是面向连接的&#xff0c;UDP是面向无连接的 UDP程序结构简单 TCP是面向字节流的&#xff0c;UDP是基于数据包的…

案例分析篇03:一篇文章搞定软考设计模式考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…