Radar Installation

Radar Installation贪心详解 假定海岸线是无限长的直线。陆地位于海岸线的一侧,海洋位于另一侧。每个小岛是位于海洋中的一个点。对于任何一个雷达的安装 (均位于海岸线上),只能覆盖 d 距离,因此海洋中的小岛被雷达安装所覆盖的条件是两者间的距离不超过 d 。 我们使用卡笛尔坐标系,将海岸线定义为 x 轴。海洋的一侧位于 x 轴上方,陆地的一侧位于下方。给定海洋中每个小岛的位置,并给定雷达安装的覆盖距离,您的任务是写一个程序,找... 阅读详情

描述

假设滑行是无限直线。土地位于海岸线的一侧,另一侧是海洋。每个小岛都位于海边。并且位于滑行的任何雷达装置只能覆盖d距离,因此如果它们之间的距离最多为d,则可以通过半径装置覆盖海中的岛屿。 

我们使用笛卡尔坐标系,定义滑行是x轴。海侧在x轴上方,陆侧在下方。考虑到每个岛屿在海中的位置,并考虑到雷达装置覆盖范围的距离,您的任务是编写一个程序,以找到覆盖所有岛屿的最小数量的雷达装置。注意,岛的位置由其xy坐标表示。 

 
图A雷达装置的示例输入

 

输入

输入包含几个测试用例。每种情况的第一行包含两个整数n(1 <= n <= 1000)和d,其中n是海中岛屿的数量,d是雷达装置的覆盖距离。接下来是n行,每行包含两个整数,表示每个岛的位置坐标。然后是一个空白行来分隔案例。 

输入由包含零对的行终止 

产量

对于每个测试用例输出,一行包含测试用例编号,然后是所需的最少数量的雷达安装。“-1”安装意味着没有解决方案。

样本输入

<span style="color:#000000">3 2 
1 2 
-3 1 
2 1 

1 2 
0 2 

0 0
</span>

样本输出

Case 1: 2
Case 2: 1

想法:贪心题目,雷达在x轴上的话,把每个小岛的坐标按x从小到大的顺序排好,

遍历每个点的时候把点看做圆的左边界,得出雷达X的值,每次圈不住小岛的坐标的时候

更新X的值为那个点为左边界圆心的值。

 

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1009;
int d,n;
struct point
{
    int x,y;
};
point p[N];

bool cmp( point a, point b){
    return a.x<b.x;
}

double getx(point a){
    return a.x+sqrt(1.0*d*d-1.0*a.y*a.y);
}
int main()
{
    int cas=0;
    while(~scanf("%d%d",&n,&d)&&(n+d)){  //输入n,d  ,0 0 的时候结束
        bool flag=0;
        for(int i=0;i<n;i++){
            scanf("%d%d",&p[i].x,&p[i].y);
            if(p[i].y>d)flag=1;     //直接淘汰:y>d的时候
        }
        if(flag){
            printf("Case %d: -1\n",++cas);
            continue;
        }
        sort(p,p+n,cmp);
        double x=getx(p[0]);   // x 是贪心出的雷达的坐标
        int ans=1;
        for(int i=1;i<n;i++){
            double tmp=getx(p[i]);
            if(p[i].x<x&&x>tmp){
                x=tmp;
                continue;
            }
            if(p[i].y*p[i].y+(p[i].x-x)*(p[i].x-x)<=d*d)
                continue;
            x = getx(p[i]);
            ans++;
        }
        printf("Case %d: %d\n",++cas,ans);
    }
    return 0;
}
本体研究综述(转) (这篇文章是从http://imarine.blog.163.com/中转载过来的,个人觉得对本体的介绍比较全面!)本体综述本体作为一种能在语义和知识层次上描述领域概念的建模工具,其目标是捕获相关领域的知识,确定该领域内共同认可的词汇,通过概念之间的关系来描述概念的语义,提供对该领域知识的共同理解。语义Web(the Semantic Web)是在本体理论基础之上对现有Web所进行的扩展[ 阅读详情

相关推荐

告别安装报错!保姆级教程:用阿狸狗破戒大师V3.2.6搞定Cadence 17.4完整安装与补丁

本文提供Cadence 17.4的完整安装与破解教程,特别针对国内用户常见问题优化。从前期准备、镜像处理到阿狸狗破戒大师V3.2.6的智能破解,再到补丁管理与性能调优,详细指导每一步操作,确保一次性安装成功并提升设计效率。

weixin_30632089的博客 837

Radar Installation(雷达安装)c语言

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

qq_63683485的博客 1193

如何使用ArcGIS自动矢量化建筑

在显示的重分类对话框内,输入栅格选择提取单波段后的栅格,重分类分为三个层级,旧值分别为100-249、250-251和252-255,对应新值为1、2和3,旧值的最小和最大值不用修改,保持和原有的一致。同样在ArcToolbox内点击Spatial Analyst工具点击“重分类\重分类”,在重分类对话框内输入栅格选择之前重分类过后的图片,将旧值3的新值设置为1,这样分类后就只有两类。在显示的新建Shapefile对话框内,名称命名为折线,要素类型选择折线,点击编辑,设置坐标系为WGS 1984。

2165

46-放置雷达(Radar Installation)

问题描述 x 轴是海岸线,x 轴上方是海洋。海洋中有 n(1<=n<=1000) 个岛屿,可以看作点。给定每个岛屿的坐标 (x,y),x,y 都是整数。当一个雷达(可以看作点)到岛屿的距离不超过 d (整数),则认为该雷达覆盖了该岛屿。雷达只能放在 x 轴上。问至少需要多少个雷达才可以覆盖全部岛屿。原题地址 输入: 输入包含几个测试用例。 每种情况的第一行包含两个整数 n(1 &lt...

桑凯旋的博客 1425

FPGA工程师必看:JESD204B同步机制实战指南(含SYSREF信号调试技巧)

本文为FPGA工程师提供了一份JESD204B同步机制的实战指南,重点聚焦于SYSREF信号的调试技巧。文章从同步的核心逻辑出发,深入剖析了时钟、SYSREF与对齐序列这“三驾马车”的协作,并详细阐述了硬件PCB布局、FPGA IP核配置、状态机监控以及使用示波器进行波形分析等关键实战步骤,旨在帮助工程师解决多通道高速系统中的同步难题,确保链路的稳定与确定性延迟。

weixin_29239661的博客 332

告别串口助手!手把手教你用Matlab直接读取STM32的传感器数据(附完整代码)

本文详细介绍了如何利用Matlab直接与STM32进行串口通信,实现传感器数据的实时采集与分析。通过完整的代码示例和系统架构设计,帮助开发者告别传统的串口助手工具链,打造高效、自动化的数据采集系统。文章涵盖了从硬件配置、通信协议设计到Matlab数据处理与可视化的全流程,特别适合嵌入式开发与数据分析结合的实践场景。

weixin_42629671的博客 429

设计与算法:Radar Installation

程序设计与算法:025:Radar Installation

ffsdfg的博客 235

记一次完整的RPG Maker MV游戏逆向过程(思路一)

了解RPG Maker MV的文件建构 上一篇文章,我们已经成功在PC上运行了游戏,那我们如何对游戏进行逆向呢? 首先要了解正常的RPG Maker MV制作的游戏应该具有哪些文件,以及他的结构 那如何了解他的结构呢,很简单,我们只需要用RPG Maker MV创建一个默认工程,来看看一个游戏的最简结构是怎么样的 创建新项目 项目创建完成 查看项目目录结构 是不是和之前解包出来的很像呢? 通...

Ciiiiiing的博客 1万+

Radar Installation(贪心,求最小雷达数)

Radar Installation Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%lld & %llu Submit Status Description Assume the coasting is an infinite straight line. Land is in o

昨日明眸 1115

OpenClaw小白使用全攻略

OpenClaw全能技能解锁指南:从基础到进阶 摘要: 本文提供OpenClaw AI智能体的完整使用教程,帮助用户从安装后"不知道如何用"到熟练掌握核心功能。教程包含:1)控制台5大区域详解和3个必做初始化设置;2)文件管理、浏览器自动化、文档生成等5大基础功能实操,每个功能配有详细操作步骤、指令模板和效果演示;3)10+高频场景解决方案,如整理文件、搜集资料、写总结等;4)进阶技巧和常见问题解答。通过清晰的图文指引,即使电脑小白也能快速上手,实现办公自动化、提升工作效率。

通俗易懂学IT 3059

RK3568笔记十七:LVGL v8.2移植

若该文为原创文章,转载请注明原文出处。本文介绍嵌入式图形库移植到Linux开发板ATK-RK3568上的步骤。

4232

Radar Installation POJ - 1328 雷达安装 贪心

雷达安装 贪心 排序比较

shiuxin的博客 625

解析 RABAX during SAPGUI Logon 错误及其解决方案

登录用户关联了初始启动程序,该程序由于未处理的异常导致运行时错误。在 ST22 查看错误的程序名和错误行。修复初始程序代码中的逻辑问题。重新部署修复后的代码。示例代码:防止未处理的异常TRY." 模拟逻辑处理ENDTRY.此代码通过 TRY-CATCH 块捕获潜在错误,避免程序崩溃。是 SAP 系统中常见的运行时错误,其根源可能涉及多个方面,包括用户配置、系统状态、数据库连接和自定义开发等。通过结合 ST22、SM21 等诊断工具,以及完善的代码实践和系统监控,可以有效预防和解决此类问题。

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

1328:Radar Installation

1328:Radar Installation 题目链接http://bailian.openjudge.cn/practice/1328/ #include<iostream> #include<cmath> #include<algorithm> using namespace std; typedef struct Node { double l, r; bool operator<(const Node& a)const { return l

记录一些刷过的题并分享学习心得 253

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

lwip-2.0.3

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

【贪心】poj 1328 Radar Installation

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

学无纸巾 362

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

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

bu_shushu的博客 1280

HDOJ-三部曲-1002-Radar Installation

Radar Installation Time Limit : 2000/1000ms (Java/Other)Memory Limit : 20000/10000K (Java/Other) Total Submission(s) : 60Accepted Submission(s) : 11 Problem Description Assume the coasting i...

weixin_30877493的博客 130

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

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

poj 贪心相关之1328 Radar Installation

ziqi9216的博客 301

题海拾贝:UVA1193 Radar Installation

【代码】题海拾贝:UVA1193 Radar Installation。

但凡的博客 284

贪心:Radar Installation

我们还是要注意情况不存在的情况。

2403_86817821的博客 225
上一篇: The Pilots Brothers' refrigerator
下一篇: 腾讯益智小游戏-矩阵计数
何处几年
博客等级 码龄8年 10粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值