PKU1328 Radar Installation

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

/*Radar Installation

Time Limit: 1000MS Memory Limit: 10000K

Total Submissions: 10128 Accepted: 1990

Description

 

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 coasting, can only cover d distance, so an island in the sea can be covered by a radius installation, if the distance between them is at most d. 

 

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

 

Figure A Sample Input of Radar Installations

 

 

Input

 

The input consists of 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 is the distance of coverage of the radar installation. This is followed by n lines each containing two integers representing the coordinate of the position of each 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 case output one line consisting of the test case number followed by the minimal number of radar installations needed. "-1" installation means no solution 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

Source

 

Beijing 2002*/

 

#include "iostream"

#include "vector"

#include "math.h"

using namespace std;

 

 

class dot

{

public:

double x;

double y;

double l;

double r;

};

 

void solution(vector<dot> k,double d,int num)

{

int result = 1;

dot tmp;

if(d < 0)

{

result = -1;

cout<<"Case "<<num<<": "<<result<<endl;

return;

}

 

for(vector<dot>::iterator iter = k.begin();iter != k.end();iter++)

{

if((*iter).y > d)

{

result = -1;

cout<<"Case "<<num<<": "<<result<<endl;

return;

}

else

{

double s = sqrt(d * d - (*iter).y * (*iter).y);

(*iter).l = (*iter).x - s;

(*iter).r = (*iter).x + s;

}

}

for(vector<dot>::iterator iter = k.begin();iter != k.end();iter++)

{

for(vector<dot>::iterator iters = iter + 1;iters != k.end();iters++)

{

if((*iter).l > (*iters).l)

{

tmp = (*iter);

(*iter) = (*iters);

(*iters) = tmp;

}

else if((*iter).l == (*iters).l)

{

if((*iter).r > (*iters).r)

{

tmp = (*iter);

(*iter) = (*iters);

(*iters) = tmp;

}

}

 

}

}

double left = (*(k.begin())).l,right = (*(k.begin())).r;

for(vector<dot>::const_iterator iter = k.begin() + 1;iter != k.end();iter++)

{

if((*iter).l > right)

{

result++;

right = (*iter).r;

}

else

{

if((*iter).r < right)

{

right = (*iter).r;

}

}

 

 

}

cout<<"Case "<<num<<": "<<result<<endl;

return;

 

}

 

 

int main(void)

{

int n;

double d;

int num = 1;

while(cin>>n>>d)

{

if(n == 0 || d == 0)

{

break;

}

 

else

{

vector<dot> k;

dot m;

for(int i = 0;i < n;i++)

{

cin>>m.x>>m.y;

k.push_back(m);

}

solution(k,d,num++);

}

 

 

 

}

return 0;

}

 

贪心。。首先来看一种通常的情况。。以岛为圆心距离为半径画圆,圆与X轴相交于2个点,这2个点一左一右就产生了一个区间,实际上仔细思考就能明白X轴上处于这个区间内的点就是以这些点任一个为圆心距离d为半径画圆能够把当前这个岛包括进来的雷达的集合。。。那么一个岛的区间和另一个岛的区间若有重合区域。。那么就有雷达能够同时覆盖这2个岛。。如果没有重复区间。。那么就需要2个雷达了。。以此类推。。

以上就是这个题目的中心思想。。。具体做时先判断以岛为圆心d为半径画圆能不能与X轴相交。。如果出现不能相交的立即可以得出结论Case 1: -1(注意本题要判断d为负的情况,d为负时也是直接返回结果-1,不做这个判断这题AC不了)。。。。。然后根据左区间的大小把岛从小到大排序(左区间相同的右区间从小到大)。。这样就可以从左往右来做区间的合并了(当然从右到左也可以)。。。具体区间合并时看我上面的代码。。这题第2个难点就是如何分清楚区间的情况。。最好用纸画一画。。

人脸识别签到考勤系统实战源码 这是一套可直接运行的人脸识别智能签到考勤系统,基于OpenCV YuNet人脸检测与SFace特征识别实现,全程本机运行,数据保存在本地SQLite,不上传任何服务器。配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、逐步骤操作截图和答辩PPT讲解。 系统围绕五个功能模块展开:人脸注册支持照片批量导入并提取特征入库;识别签到支持照片或摄像头两种方式,实时框出人脸并标注姓名、相似度与考勤状态;考勤规则引擎按config.py里配置的上下班时间与宽限分钟,自动判定迟到、早退、缺勤;Tkinter管理面板完成人员管理、流水查询与月度汇总;最后通过openpyxl一键导出整月考勤矩阵,正常绿、迟到黄、缺勤红,Excel打开即用。 选型上特意选了YuNet+SFace路线:纯pip安装免编译,CPU单帧识别不到100ms,两个ONNX模型共约37MB,出自OpenCV官方模型仓库,毕设报告引用有据可查。教程第7章整理了16条Windows下真实踩过的报错及排查方法,第8章给出换模型、换人脸、加功能的二次开发路径。 适合做计算机视觉方向毕设或课程设计的学生,也适合想给班级、实验室、小团队搭一套本地签到工具的Python学习者。运行环境为Python 3.9以上、Windows 10/11,不需要GPU。 使用时先pip install -r requirements.txt装齐依赖,再运行download_data.py下载模型,最后启动main.py即可进入图形界面;命令行register、recognize、report子命令也可脱离界面单独调用。 立即下载

相关推荐

【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例

内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。

pku-1328 我的贪心

  [ 题目描述] 假设有一条无限长的海岸线,在海的那一半有n个岛屿。在海岸线上有雷达,每个雷达能够探测的范围为半径为d的圆,一个岛屿能被雷达探测到,当且仅当它与雷达的距离小于等于d。    我们用直角坐标系来抽象这些,x轴为海岸线,x轴上面为海,x轴下面为陆地(如图)。<IMG alt=" 3.2图" hspace=1 src="http://images.blogcn.com/2006

笑风生 1124

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

北大ACM1328——Radar Installation~~贪心

题目的大概意思是:给你N个坐标,雷达的半径为d,求至少安装多少个雷达才能将所有点覆盖。雷达都在 x 轴上,不能全部覆盖的就输出 -1. 思路大概是,先算出雷达覆盖每一个点的横坐标的范围。然后再来贪心求解有几个。 下面的是AC的代码: #include #include #include using namespace std; class data { public: double

XD 2333

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

POJ 1328 贪心算法

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

王星星 3754

ZYNQ程序固化实战:从BOOT.bin生成到QSPI/SD卡双启动模式详解

本文详细解析了ZYNQ 7000系列程序固化的完整流程,重点解决了程序断电丢失问题。通过实战演示,从生成BOOT.bin文件到配置QSPI与SD卡双启动模式,逐步指导开发者实现程序在外部存储中的永久驻留,确保产品脱离调试器独立运行。

weixin_29193259的博客 517

poj1328--Radar Installation

poj天梯

Dart 288

SolidWorks参数化建模实战:从规则定义到智能装配

本文深入探讨SolidWorks参数化建模的实战技巧,从规则定义到智能装配的全流程。通过实际案例展示如何提升设计效率300%,确保一致性,并加速系列化开发。重点解析草图阶段植入设计意图、装配体级参数化及高级技巧,帮助工程师掌握三维建模的核心竞争力。

weixin_29306317的博客 416

ADS2019学习笔记:三、SPICE model导入

以BZX84-C33 SPICE model为例,学习如何在ADS2019中导入SPICE model。

qq_42945911的博客 6493

pku 1328(贪心)

大意就是给出雷达覆盖的范围和岛的坐标,要求判断最少需要多少雷达覆盖全部的岛。 首先算出每个岛到岸边的距离小于等于d的区间范围  然后根据区间排序。让尽可能多的区间重叠。在比较的时候不断的压缩区间。没有y小于0的数据。 #include #include #include using namespace std;typedef struct w { float

L's Space 688

各大厂薪资对比爬虫:Python采集OfferShow爆料数据

print(f"⚠️ API返回错误码: {data.get('code')}, msg: {data.get('msg')}")ax.set_title('各大厂薪资对比 (基于OfferShow爆料数据)', fontsize=16, fontweight='bold')stats.columns = ['人数', '平均年薪', '年薪中位数', '年薪标准差', '平均月薪', '平均月数']print(analyzer.get_position_stats('字节跳动').head(10))

2201_76125261的博客 603

PKU 1328 Radar Installation

PKU 1328 Radar Installationhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1328我晕,太注意精度问题了让我WA了N次!!注意我代码里给出的边界测试数据就OK了贪心+排序:#include #include #include using namespace std;const double E

互联网产品管理、交互、设计、开发、用户体验专栏 858

晶闸管选型参数,结构原理,工艺与注意问题总结

闸管(Thyristor)是一种半导体开关器件,也被称为可控硅整流器(SCR, Silicon Controlled Rectifier)。它可以在高电压和大电流条件下工作,常被用于交流电的控制和整流。本文对晶闸管的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1283

Android面试指南及参考答案

【摘要】LesPark招聘Android开发工程师,要求3年以上经验,负责客户端功能开发与优化。岗位需掌握Java、多线程、网络编程(TCP/UDP/HTTP)及性能调试工具。面试重点考察:1)核心技术如网络协议选择(TCP可靠消息/UDP实时音视频)、内存泄漏分析;2)业务能力如图片懒加载三级缓存设计、启动速度优化案例;3)高阶系统原理如插件化框架设计;4)行为问题应对策略。建议候选人准备并发编程、JVM差异等深度知识,并量化项目优化成果,尤其关注社交应用相关的图片处理、实时通信等场景题。

郑伟强dev的专栏 804

Radar Installation (pku 1328)雷达放置

题目:Radar Installation (pku 1328) Description 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 sid...

qq_41932243的博客 338

【RT-DETR涨点改进】小目标检测、特征融合改进篇 | TGRS 2024 | RT-DETR引入CSFM上下文选择融合模块,适合多模态检测、红外小目标检测、小目标检测、遥感目标检测等任务有效涨点

本文提出了一种改进RT-DETR目标检测模型的方法,通过引入上下文选择融合模块(CSFM)显著提升复杂背景下小目标和低对比度目标的检测精度。CSFM模块采用多尺度特征融合和动态特征选择机制,有效增强模型的全局上下文感知能力,同时保留细节特征。该模块通过通道减少机制和空间信息调节,实现从粗到细的特征聚合,减少误报并提高轮廓检测精度。实验表明,改进后的RT-DETR模型在多个基准测试中表现优异,计算效率与检测精度均优于现有方法。文章还详细介绍了模块配置和yaml文件修改方法,为模型部署提供指导。

Ai缝合怪、助力小伙伴高效发论文 1724

pku 1328 Radar Installation(贪心)

该题题意是为了求出能够覆盖所有岛屿的最小雷达数目,每个小岛对应x轴上的一个区间,在这个区间内的任何一个点放置雷达,则可以覆盖该小岛,区间范围的计算用[x-sqrt(d*d-y*y),x+sqrt(d*d-y*y)];这样,问题即转化为已知一定数量的区间,求最小数量的点,使得每个区间内斗至少存在一个点。例如这组数据:3 20 01 24 0我们算出区间并按区间起始位置排序后有:[-2,2],[1

low coder 1180

把 SAP Query 用到极致:ABAP Query 的核心概念、配置流程、权限与运输治理全解析

摘要:SAP Query 是一款面向业务用户的自助报表工具,可解决标准报表无法满足业务需求的问题。其核心由四大组件构成:Queries(报表定义)、InfoSets(数据视图)、User Groups(权限分组)和Translation(多语言支持)。通过SQ03、SQ02、SQ01事务码分步创建用户组、数据视图和查询,业务用户无需ABAP知识即可生成Basic List(明细)、Statistics(统计)和Ranked List(排名)三种报表形式。典型案例展示了如何为采购部门设计包含明细追溯和Top1

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 179

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

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

Radar Installation(1328)

大致题意:给定一些点和固定半径的圆, yuanx

u011867401的专栏 391

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

poj1328 Radar Installation 解题报告

Description 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, loc

xxm137164869的专栏 2250

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

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

领头“洋” 703

ACM Radar Installation(挑战程序设计竞赛)

Radar Installation Time Limit: 1000ms Memory Limit: 10000KB This problem will be judged on PKU. Original ID: 1328 64-bit integer IO format: %lld      Java class name: Main Prev Submit

seektheworld 3345

pku 1328 第一周训练 ——贪心

http://poj.org/problem?id=1328 这个题目就是每个岛屿对应一个雷达区间,然后确定好雷达区间后,然后在将区间的s或者e从小到大排序,然后贪心。 第一种按s从小到大排序: View Code #include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;...

weixin_34018169的博客 148

北大1328题

 题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1328该题需要解决的具体问题有1,根据每个岛的位置找到能辐射到该岛的雷达的有效区间。2,如果多个区间有公共部分,那么只要将雷达放到这个公共区间就可以辐射到所有这些岛。3,根据1的结果和2的理论,需要找到尽可能少的公共区间,使每个公共区间牵涉的岛屿最多,这个过程用到了贪心策略。

HelloWorld 843
上一篇: 解题报告BLOG开启。。第一题 PKU1922 Ride to School
下一篇: PKU1692 Crossed Matchings
zonelight
博客等级 码龄19年 8粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值