首页 > 其他分享 >P1325 雷达安装

P1325 雷达安装

时间:2024-03-20 18:13:15浏览次数:24  
标签:覆盖 int double 小岛 P1325 雷达 安装

原题链接

题解

1.将雷达建在海岸线上最优,覆盖的面积最大
2.根据光线可逆,雷达安装的位置覆盖多少小岛,等价于小岛被覆盖需要在哪个范围的位置上安装雷达
3.想象把雷达安装在最左边,然后慢慢往右移,这个时候雷达覆盖的小岛数量会越来越多,当右移到某个原本能覆盖的小岛覆盖不了时,在那个位置安装一个雷达
4.重复上述操作,我们发现就是把小岛需要安装雷达的范围按右端点排序,期间左端点大的就可以免安装

code

#include<bits/stdc++.h>
using namespace std;
struct node
{
    double x,y;
    double l,r;
};
int vis[1005]={0};
bool cmp(node a,node b)
{
    return a.r<b.r;
}
int main()
{
    node a[1005];
    int n;
    double d;
    cin>>n>>d;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].x>>a[i].y;
        double x=a[i].x,y=a[i].y;

        if(y>d){puts("-1");return 0;}
        double len=sqrt(d*d-y*y);
        a[i].l=x-len;
        a[i].r=x+len;
    }

    sort(a+1,a+n+1,cmp);

    int ans=0;
    for(int i=1;i<=n;i++)
    {
        //printf("now:%d, l:%lf  r:%lf\n",i,a[i].l,a[i].r);
        if(vis[i]) continue;
        vis[i]=1;
        ans++;
        for(int j=i+1;j<=n;j++)
        {
            if(a[j].l<=a[i].r) vis[j]=1;
            else break;
        }
    }

    cout<<ans<<endl;
    return 0;
}

标签:覆盖,int,double,小岛,P1325,雷达,安装
From: https://www.cnblogs.com/pure4knowledge/p/18085799

相关文章

  • w10下安装mysql8.0及dbeaver24记录
    1、首先到官网或者下载网站,下载mysql8.0的安装包,本次是从第三方下载网站下载的msi安装包,直接点开安装就行2、安装完后,参考https://blog.csdn.net/Javachichi/article/details/1327585513、然后下载安装dbeaver,安装好后配置连接mysql,其中自动下载mysql驱动时可能会报错,提示maven......
  • Chocolatey安装与使用
    目录使用Chocolatey完成一键盘安装Windows环境下的所有程序依赖Chocolatey安装Chocolatey安装前提条件安装要求Chocolatey组成安装ChocolateyChocolatey用法常用命令常用安装包补充search命令install命令update命令更新包卸载安装包uninstall命令如果你不想在命令行中搜索和安装......
  • Docker安装MinIO保姆级安装
    文章目录前言一、前提二、安装步骤1.首先在你想安装位置下创建一个文件目录,进入目录后创建一个docker-compose.yml文件2.编辑docker-compose.yml文件3.当前路径下新建文件夹config,新建配置文件nginx.conf4编写配置文件nginx.conf5.启动&测试6.访问测试总结前......
  • 10大漏洞评估和渗透测试工具【附安装包】
    1、NetsparkerSecurityScanner专为企业设计的强大的漏洞扫描和管理工具,它可以检测和利用SQL注入和XSS等漏洞。https://www.netsparker.com/product/2、AcunetixScanner针对中小型企业的Web应用程序漏洞扫描程序,但也可以扩展到更大的组织。它可以检测SQL注入......
  • 7、docker-compose安装使用
    ##下载docker-composecurl-Lhttps://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname-s`-`uname-m`>/usr/local/bin/docker-compose##可选升级包curl-L"https://github.com/docker/compose/releases/download/v2.11.0/docker-compose-......
  • 1、安装docker引擎
    一、安装Docker设置centosyum镜像源cd/etc/yum.repos.d/mkdirbackup&&mv*repobackup/wget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repoyumcleanall&&yummakecacheyumrepolistall卸载旧版本......
  • windows系统下使用pip安装 Superset
    windows系统下使用pip安装Superset一安装ANACONDAAnaconda官方网站就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。下载地址:免费下载(anaconda.com)直接点击下一步完成安装二......
  • 安装jmeter
    一、先安装JDK我选择了openJDK下载地址:https://jdk.java.net/archive/ 下载后,解压到要安装的文件夹设置环境变量新建:JAVA_HOME  , JDK的安装目录编辑PATH变量: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 校验是否安装成功:java-version 返回openjdkversion"19"......
  • 安装CUDA
    1.下载CUDA根据cmd的命令,看你的CUDA版本,找到匹配的安装CUDAToolkitArchive|NVIDIADeveloper点击进入点击exe文件安装即可精简安装会安装CUDA相关组件,同时也会将显卡驱动重新安装,如果不想重新安装显卡驱动,可以选择自定义安装,我选择自定义安装,如下图:安装完毕......
  • 在 MacOS 上安装 Qt 6.5
    安装Qt6.5其实很简单,直接上官网下载对应系统的在线安装包,然后安装引导下载你需要的内容即可。问题在于,国内通过Qt的在线安装程序的下载速度实在无法忍受,甚至有可能一直下载失败。因此我们需要使用一些国内的镜像源来下载,比如清华镜像源(https://mirrors.tuna.tsinghua.edu.cn......