蓝桥杯备赛-贪心-区间合并

embedded/2025/3/19 12:51:32/

题目描述

已知有 N 个区间,每个区间的范围是 [si​,ti​],请求出区间覆盖后的总长。

输入格式

第一行一个正整数 N,表示区间个数。

接下来 N 行,每行两个正整数,表示 si​ 和 ti​。

输出格式

共一行,一个正整数,为覆盖后的区间总长。

输入输出样例

输入 

3
1 100000
200001 1000000
100000000 100000001

输出 

900002

说明/提示

对于 40% 的数据,N≤1000,1≤si​<ti​≤10000。

对于 100% 的数据 ,N≤105,1≤si​<ti​≤1017。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
//区间合并,按开始最早进行排序!!!
//合并重合区间,分区间段计算总和
//若是通过移动合并成一条区间,会影响是否重合的比较,例如a,b,c,ab不相邻,bc重合,移动后,新的end判定和c不重合,那么bc重合部分就被计算了两次
//本题意为,将所有线段都覆盖需要多长,覆盖线段允许断开
struct meet {int a;int b;
};
bool cmp(meet x, meet y) {return x.a < y.a;
}
int main() {int n;cin >> n;vector<meet>a(n + 3);for (int i = 1; i <= n; i++) {cin >> a[i].a >> a[i].b;}sort(a.begin() + 1, a.begin() + 1 + n, cmp);int sum = 0;int start = a[1].a;int end = a[1].b;for (int i = 2; i <= n; i++) {if (a[i].a> end) {//不重合,计算现有区间长度,重新开始新区间sum += end - start + 1;//先计算,再更新!!!end = a[i].b;start = a[i].a;//忘记更新起始了}else {//重合或相邻end = max(end,a[i].b);//把i写成1了}}sum += end - start + 1;//计算最后一段cout <<sum;return 0;
}

 

文章来源:https://blog.csdn.net/m0_74797130/article/details/146299041
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/embedded/173484.html

相关文章

【Leetcode 每日一题】3110. 字符串的分数

问题背景 给你一个字符串 s s s。一个字符串的 分数 定义为相邻字符 ASCII 码差值绝对值的和。 请你返回 s s s 的 分数 。 数据约束 2 ≤ s . l e n g t h ≤ 100 2 \le s.length \le 100 2≤s.length≤100 s s s 只包含小写英文字母。 解题过程 按题目要求遍历累加就可…

树莓科技集团董事长:第五代产业园运营模式的深度剖析与展望​

第五代产业园运营模式&#xff0c;以创新为核心驱动&#xff0c;强调数字化、网络化和资源整合。树莓科技集团在这一领域具有代表性&#xff0c;其运营模式值得深入剖析。 核心特征 数字化转型&#xff1a;第五代产业园高度重视数字化技术的应用&#xff0c;通过构建数字化平…

CSS中绝对定位

1.如何设置绝对定位? 给元素设置postition: absolute 即可实现绝对定位 可以使用left,right,top,bottom四个属性调整位置 2.绝对定位的参考点在哪里? 参考他的包含块. 什么是包含块? 1.对于没有脱离文档流的元素:包含块就是父元素; 2.对于脱离文档流的元素:包含块是第一个拥…

uniapp-x 子组件样式覆盖

不支持scoped 默认不支持scoped&#xff0c;所以写也没用 那如果我想修改子孙节点的样式是不是很方便&#xff0c;不需要v-deep了&#xff1f; 的确如此 自带页面样式隔离 在 uni-app x 中&#xff0c;不支持 css scoped&#xff0c;样式的作用范围遵循以下规则&#xff1a;…

Springboot+mybait查询功能撰写

我们写查询首先要考虑&#xff0c;我们需不需要传值&#xff0c;返回些什么&#xff1f;想哈~我们首先前端不需要传入任何东西过来&#xff0c;所以我们方法后面不需要写任何的参数&#xff01;其次&#xff0c;我们要返回什么回去&#xff1f;我们肯定要返回一个List<user&…

【无标题】ffmpeg 合并文件夹下所有视频

(Get-Content "F:\33333333333333\1146523396\videos.txt") | ForEach-Object { "file $_" } | Set-Content "F:\33333333333333\1146523396\videos.txt"这个会把目录下的所有MP4视频文件按文件名写到一个文件。 powershell ffmpeg -f concat -…

RHCE(RHCSA复习:npm、dnf、源码安装实验)

七、软件管理 7.1 rpm 安装 7.1.1 挂载 [rootlocalhost ~]# ll /mnt total 0 drwxr-xr-x. 2 root root 6 Oct 27 21:32 hgfs[rootlocalhost ~]# mount /dev/sr0 /mnt #挂载 mount: /mnt: WARNING: source write-protected, mounted read-only. [rootlocalhost ~]# [rootlo…

Java 学习记录:基础到进阶之路(二)

在 Java 学习的旅程中&#xff0c;我们逐步探索了其丰富的知识体系&#xff0c;从基础的数据类型、字符串操作&#xff0c;到流程控制、运算符的运用&#xff0c;每一步都为我们构建强大的编程能力奠定基石。同时&#xff0c;了解这些知识在 Java 全栈开发中的应用场景&#xf…