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

西门子S7-200 SMART与施耐德ATV变频器Modbus通讯实战:从接线到稳定运行的完整指南

本文详细介绍了西门子S7-200 SMART PLC与施耐德ATV变频器之间实现稳定Modbus通讯的完整实战指南。内容涵盖从硬件接线、参数配置、PLC程序编写到触摸屏设计的全流程,并分享了提升通讯稳定性的关键技巧和常见故障排查方法,助力工业自动化系统可靠运行。

kkk56的博客 1106

poj1328--Radar Installation

poj天梯

Dart 288

QT5.14.2离线安装包保姆级教程:断网、选组件、避坑全记录

本文详细介绍了QT5.14.2离线安装包的完整流程,特别针对Windows平台开发者提供断网安装、组件选择及避坑指南。作为QT5系列中最后一个免费离线版本,5.14.2具有免注册、全组件离线安装等独特优势,是开源开发者的理想选择。文章涵盖从环境准备到安装后配置的全方位指导,帮助开发者高效完成安装并避免常见问题。

weixin_30924087的博客 578

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 898

pku 1328(贪心)

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

L's Space 688

告别定位不准!Inner-IoU助力YOLOv11边界框回归精度飙升

Inner-IoU 凭借辅助边框的创新设计,成功解决了传统 IoU 损失在小目标、遮挡场景下的收敛难题,为 YOLOv11 注入了更强的定位能力。从原理剖析到代码集成,本教程已为你铺就了一条“精度提升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“精度优异”的答卷——相信我,当你看到检测框精准贴合目标的那一刻,你会明白这份尝试的价值。

FJN110的博客 191

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

RH850从0搭建Autosar开发环境【6】- Davinci Configurator之CanIf模块配置详解(下)

RH850从0搭建Autosar开发环境【6】- Davinci Configurator之CanIf模块配置详解(下)

weixin_42412049的博客 2584

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4054

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

【Pix4d精品教程】Pix4d空三后处理:点云分类与过滤、DSM精编生成DEM、生成等高线案例详解

本文详细介绍了利用Pix4D软件进行无人机摄影测量后处理的关键步骤,主要包括点云分类与分配、DEM精编生成和等高线绘制三个核心环节。首先通过点云分类区分地面、植被等7种地物类型,然后通过点云分配将地面点云归并到Ground类别,剔除植被等干扰要素。随后重新运行DSM生成步骤获取精确DEM,最后在附加输出中设置参数生成标准等高线。文中配有详细的操作截图和注意事项,如处理前需备份原始DSM/DOM数据,并解释了DEM与DSM的本质区别。该教程为无人机摄影测量内业处理提供了完整的解决方案。

智慧空间实验室 1万+

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

Response Instance 详解:在 ABAP OData Client Proxy 中读懂每一次响应

ABAP OData Client Proxy中的Response Instance是关键信息载体,封装了业务数据及调用上下文(如分页、delta link等)。响应实例在执行请求后自动生成,根据请求类型返回特定接口(如READ返回/IWBEP/IF_CP_RESPONSE_READ)。响应抽象与OData版本解耦,支持统一处理V2/V4服务。常见响应类型包括单实体读取、列表读取(支持分页和增量同步)、创建/更新/删除响应等。开发时可通过响应对象的安全类型方法获取数据,如get_business_data获

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

lwip-2.0.3

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

Radar Installation(1328)

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

u011867401的专栏 391

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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、付费专栏及课程。

余额充值