码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【洛谷】P2082 区间覆盖(加强版)


    题目地址:

    https://www.luogu.com.cn/problem/P2082

    题目描述:
    已知有 N N N个区间,每个区间的范围是 [ s i , t i ] [s_i,t_i] [si​,ti​],请求出区间覆盖后的总长。

    输入格式:

    N
    s1  t1
    s2  t2
    ……
    sn  tn
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出格式:
    共一行,一个正整数,为覆盖后的区间总长。

    数据范围:
    对于 40 % 40\% 40%的数据 N ≤ 1000 , 0 < S i < T i ≤ 10000 N≤1000,0<S_i<T_i≤10000 N≤1000,0<Si​<Ti​≤10000
    对于 100 % 100\% 100%的数据 N ≤ 1 0 5 , 0 < S i < T i ≤ 1 0 1 7 N≤10^5, 0<S_i<T_i≤10^17 N≤105,0<Si​<Ti​≤1017,且为整数

    先将所有区间按左端点排序,然后遍历区间,维护一个右边界,看每次新考虑一个区间会增加多少覆盖范围,累加即可。代码如下:

    #include <iostream>
    #include <algorithm>
    #define x first
    #define y second
    using namespace std;
    using PLL = pair<long, long>;
    
    const int N = 1e5 + 10;
    int n;
    PLL a[N];
    
    int main() {
      scanf("%d", &n);
      for (int i = 0; i < n; i++) 
        scanf("%ld%ld", &a[i].x, &a[i].y);
      sort(a, a + n);
    
      long res = 0, r = -1e19;
      for (int i = 0; i < n; i++)
        if (r <= a[i].y) {
          res += a[i].y - max(r, a[i].x) + 1;
          r = a[i].y + 1;
        }
      printf("%ld\n", res);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn),空间 O ( 1 ) O(1) O(1)。

  • 相关阅读:
    JAVA家教管理系统毕业设计 开题报告
    Android-Handler源码解析-Looper
    “一篇长文教你进行全方位的使用appium“
    Stable Diffusion 模型下载:FenrisXL(芬里斯XL)
    MYSQL-->InnoDB引擎底层原理
    IP代理安全吗?如何防止IP被限制访问?
    API阶段测试
    JsonUtility和LitJson的特点与区别
    杰理-判断经典蓝牙是否在打开状态
    Qt扫盲-QJsonDocument理论总结
  • 原文地址:https://blog.csdn.net/qq_46105170/article/details/125617543
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号