当前位置: 首页 > news >正文

P1325 雷达安装【洛谷算法习题】

P1325 雷达安装

网页链接

P1325 雷达安装

题目描述

假设海岸线是一条无限延伸的直线。它的一侧是陆地,另一侧是海洋。每一座小岛是在海面上的一个点。雷达必须安装在陆地上(包括海岸线),并且每个雷达都有相同的扫描范围d dd。你的任务是建立尽量少的雷达站,使所有小岛都在扫描范围之内。

数据使用笛卡尔坐标系,定义海岸线为x xx轴。在x xx轴上方为海洋,下方为陆地。

输入格式

第一行包括2 22个整数n nnd ddn nn是岛屿数目,d dd是雷达扫描范围。

接下来n nn行,每行两个整数,为岛屿坐标。

输出格式

一个整数表示最少需要的雷达数目,若不可能覆盖所有岛屿,输出-1

输入输出样例 #1

输入 #1

3 2 1 2 -3 1 2 1

输出 #1

2

说明/提示

样例 1 解释

数据范围

对于全部数据,n ≤ 1000 n\le1000n1000,$ d \le 2\times 10^4, ,| x_i | \le 2 \times 10^6, ,0 \le y_i \le 2\times 10^4$。

解题思路

本题是经典的区间贪心选点问题,核心是将几何覆盖问题转化为区间覆盖问题求解。首先判断合法性:若岛屿纵坐标大于雷达半径,直接输出-1表示无法覆盖。对每个合法岛屿,计算其在海岸线(x轴)上可被雷达覆盖的区间[l, r]。将所有区间按右端点从小到大排序,采用贪心策略:在区间右端点放置雷达,能覆盖最多后续区间。遍历区间,若当前雷达无法覆盖该区间,则新增雷达并更新位置。最终统计最少雷达数量,算法时间复杂度O ( n log ⁡ n ) O(n\log n)O(nlogn),高效适配题目数据范围。

总结

核心逻辑:几何覆盖问题转化为区间点覆盖问题,贪心选择区间右端点放置雷达。
关键操作:计算岛屿覆盖区间、按右端点排序、贪心遍历统计雷达数、预判无解场景。
效率保障:排序配合线性遍历,逻辑简洁,无冗余计算,精准解决问题。

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;structnd{doublel,r;}a[1010];doublecmp(nd aa,nd bb){returnaa.r<bb.r;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll n;doubled;cin>>n>>d;doublex[1010],y[1010];for(ll i=1;i<=n;i++){cin>>x[i]>>y[i];if(y[i]>d){cout<<"-1"<<endl;return0;}a[i].l=x[i]-sqrt(d*d-y[i]*y[i]);a[i].r=x[i]+sqrt(d*d-y[i]*y[i]);}sort(a+1,a+n+1,cmp);doubletmp;ll ans=0;for(ll i=1;i<=n;i++){if(i==1)tmp=a[i].r,ans++;elseif(tmp>a[i].l)continue;elsetmp=a[i].r,ans++;}cout<<ans<<endl;return0;}
http://www.jsqmd.com/news/904870/

相关文章:

  • 国内优质砖雕厂家实力排行:工艺与服务全维度对比 - 奔跑123
  • 2026年5月徐州黄金回收哪家好?10家实测+选店避坑全攻略 - 生活测评君
  • Ant Design Pro v6.0.2 发布:升级 antd、新增 AI 辅助升级能力,多项功能改进
  • 基于Arduino与FFT的音频频谱可视化:从原理到实现的完整指南
  • Zabbix监控初步搭建
  • 猫抓浏览器扩展完全指南:告别网页资源获取烦恼
  • 2026年5月泰安黄金回收哪家好?8家实测+避坑全攻略 - 生活测评君
  • 2026年5月停车场出入口设备厂家选型攻略|智慧停车采购指南 - TOP10品牌推荐榜单
  • 有什么软件可以去视频水印?四款小程序加桌面工具实测
  • 2026年国内3大主流一物一码服务商对比:中大型快消选型权威测评报告 - 纳宝科技一物一码
  • 山东省 乳山市寄件省钱天花板!2026全国靠谱快递平台实测,低价寄件不踩坑 - 时讯资讯
  • 2026广州白云区注册公司攻略|靠谱财税代办机构TOP5科普推荐 - GrowthUME
  • 【数据分析】python-pandas速查文档(3)
  • Sora 2 AI主播生成全链路拆解:从提示词工程、语音驱动到唇形同步的7大关键技术突破
  • 基于DLP平台的手写数字分类——CPU到深度学习处理器的加速实践
  • 从零打造蓝牙遥控履带车:Arduino、3D打印与FPV系统全解析
  • 2025泉州除甲醛公司Top5深度测评:绿舒环保稳居榜首 - 绿舒环保母婴除甲醛
  • 2026年最值得关注的8款AI简历工具深度解析
  • 基于Raspberry Pi Pico W的Wi-Fi邮件报警系统设计与实现
  • 踩坑!JDK8u371 报 No appropriate protocol,加启动参数无效
  • 选择题专练数据库原理精选30题
  • 如何使用Legacy iOS Kit实现旧款iOS设备降级与越狱的完整指南
  • Arduino LED乒乓球游戏:从电路设计到状态机编程的嵌入式开发实践
  • 2.隐藏账户
  • crabc - api 开源项目更名 ApiGo,一站式 API 数据服务平台更新多项功能
  • 求职季必备!这7款AI简历工具,让你的简历匹配度飙升,效率翻倍!
  • 2026碑林区企业变更哪家好?西安碑林区优质财税机构TOP4测评 - 小柏云
  • Ubuntu 20.04 新手必看:刚装完系统,ifconfig和vim都用不了?5分钟搞定镜像源和常用工具安装
  • 老年人陪伴与护理智能体
  • 国内钢模板企业排行:5家实力厂商核心能力对比 - 奔跑123