文明距离(civil)

文明距离(civil)文明距离 civil 题目描述你被一个一向箔打中了 现在你掉到了一个一维空间中 也就是一个数轴上 在这个数轴上 每秒会在一段连续的区间上出现 文明 而你在每一秒开始的时候 可以花费 x 的代价移动 x 的距离 其中 x 是任意非负实数 当你移动结束以后 若你离 文明 的距离为 y 你就需要花费 y 的代价使用 大眼睛 来观测这个文明 不然你就要被黑暗森林攻击了 此处距离是指你到这段区间

文明距离(civil)

题目描述

你被一个一向箔打中了,现在你掉到了一个一维空间中,也就是一个数轴上。

在这个数轴上,每秒会在一段连续的区间上出现“文明”。而你在每一秒开始的时候,可以花费x的代价移动x的距离,其中x是任意非负实数。当你移动结束以后,若你离“文明”的距离为y,你就需要花费y的代价使用“大眼睛”来观测这个文明,不然你就要被黑暗森林攻击了。此处距离是指你到这段区间中任意一点的距离的最小值。

现在,你收到了一系列信息,表明每秒的文明出现位置以及你的初始位置,请你最小化你的代价来完成任务。

 

输入格式

第一行两个正整数n,x,分别表示总秒数以及你的初始位置。

接下来n行,第i+1行有两个正整数li,ri,表示第i秒的时候的文明出现的位置。

 

输出格式

输出一行,表示最小代价。

 

样例
样例输入
5 4 2 7 9 16 8 10 9 17 1 6

样例输出
8

数据范围与提示

对于20%的数据,n<=10x,li,ri<=10

对于50%的数据,n<=2000,x,li,ri<=10^9

对于100%的数据,n<=5*10^5,x,li,ri<=10^9

 


solution

 

orzxjq!!!!!
3分钟屠出我永远也做不出的题。
我们假设我们现在的最优取值区间[l,r]
 新来的一段区间为[a,b]
如果abcd有交集,那么下一步的最优解区间就是交集。
否则下一步的最优解区间是两个区间中间的那一段。
文明距离(civil) 文明距离(civil)

#include
         
       
         
         
         
         
         
          
        
          
          
          
          
           #include
          
        
          
          
          
          
           
            #include 
            
             #include 
             
              #include 
              
               #include 
               
               #define maxn 500005 
               using 
               namespace 
                std;  
               int 
                n,x,l[maxn],r[maxn];  
               long 
               long 
                ans;  
               int 
                main() { cin>>n>> 
               x;  
               int nl=x,nr= 
               x;  
               for( 
               int i= 
               1;i<=n;i++ 
               ){ scanf( 
               " 
               %d%d 
               ",&l[i],& 
               r[i]);  
               if(nr< 
               l[i]){ ans+=l[i]- 
               nr; nl=nr;nr= 
               l[i]; }  
               else 
               if(nl> 
               r[i]){ ans+=nl- 
               r[i]; nr=nl;nl= 
               r[i]; }  
               else 
                { nl=max(nl,l[i]);nr= 
               min(nr,r[i]); } } cout< 
               
                 endl; 
                return 
                0 
                ; } 
                
               
              
             
            
          
         
       
         
         
         
         
         

View Code

 

转载于:https://www.cnblogs.com/liankewei/p/10409279.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230058.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午3:13
下一篇 2026年3月16日 下午3:13


相关推荐

  • Nodejs后端框架搭建(express)

    Nodejs后端框架搭建(express)文章目录1.node简介2.Express简介3.项目初始化4.Express三大基础概念(扩展)1.node简介Node是一个基于V8引擎的Javascript运行环境,它使得Javascript可以运行在服务端,直接与操作系统进行交互,与文件控制、网络交互、进程控制等2.Express简介express是一个轻量级的NodeWeb服务端框架,同样是一个人气超高的项目,它可以帮助我们快速搭建基于Node的Web应用3.项目初始化1.创建项目首先你得创

    2022年5月23日
    52
  • python中encode和decode的区别_python rindex

    python中encode和decode的区别_python rindex1.基本语法1.encode()和decode()都是字符串的函数decode解码encode编码str———>str(Unicode,byte类型)———>str2.decode()与encode()方法可以接受参数,其声明分别为:其中的encoding是指在解码编码过程中使用的编码(此…

    2022年10月6日
    5
  • Ubuntu 18.04通过deb安装cuda 10.2

    Ubuntu 18.04通过deb安装cuda 10.2wgethttps://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pinsudomvcuda-ubuntu1804.pin/etc/apt/preferences.d/cuda-repository-pin-600wgethttps://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installer

    2022年5月9日
    71
  • 完全卸载docker

    完全卸载docker完全卸载 docker 停止 docker 服务 systemctlsto

    2026年3月26日
    1
  • 智能视频识别技术的发展现状「建议收藏」

    智能视频识别技术的发展现状「建议收藏」一、智能视频分析技术应用现状  作为强化视频监控系统应用的一门主要技术——视频智能分析技术,近几年一直得到业界的广泛的关注,其通过对视频内容的分析,将客户所关注的目标从监控背景中分离出来,按照目标的移动方向、速度、时间等参数和某些行为特征进行关联,从而达到主动监控防御的目的。按说这一技术的大规模推广应用对于提高当前治安监控系统的利用效率将起到很大的作用,但实际上却没有得到有效的推广,所谓“叫好不叫座”。笔者认为,造成这一现象的主要原因有以下几个方面:【您可以是大型系统集成商、可以是相关贸易的经销商.

    2022年4月30日
    79
  • linux 下gz文件解压命令,Linux解压gz文件的命令怎么写

    linux 下gz文件解压命令,Linux解压gz文件的命令怎么写Linux解压gz文件的命令怎么写发布时间:2020-11-1713:39:53来源:亿速云阅读:122作者:小新小编给大家分享一下Linux解压gz文件的命令怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!gz文件是一种压缩文件,以.gz或者.tar.gz(.tgz)为扩展名,在Linux、UNIX和OSX下常见…

    2022年5月20日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号