上海市计算机学会竞赛平台2023年2月月赛丙组区间的并

news/2024/7/8 15:44:50 标签: 算法, 数据结构
题目描述

给定一个数轴上的 𝑛n 个闭区间,第 𝑖i 个闭区间的两端点为[𝑎𝑖,𝑏𝑖][ai​,bi​],它们的并集可以表示为若干不相交的闭区间,请按照左端点从小到大的顺序输出这些区间的并集。

输入格式
  • 第一行:单个整数 𝑛n;
  • 第二行到第 𝑛+1n+1 行:每行两个整数 𝑎𝑖ai​ 与 𝑏𝑖bi​ 表示一个闭区间 [𝑎𝑖,𝑏𝑖][ai​,bi​]。
输出格式

若干行:表示输入区间的并集。每行两个整数,表示一个闭区间的两个端点,这些闭区间应该按照起点从小到大排序。

数据范围
  • 对于 50%50% 的数据,1≤𝑛≤1041≤n≤104,0≤𝑎𝑖≤𝑏𝑖≤1040≤ai​≤bi​≤104
  • 对于 100%100% 的数据,1≤𝑛≤1051≤n≤105,0≤𝑎𝑖≤𝑏𝑖≤1090≤ai​≤bi​≤109
样例数据

输入:

3
10 12
1 3
2 5

输出:

1 5
10 12

详见代码:

#include<bits/stdc++.h>
using namespace std;
struct st 
{
    int a;
    int b;
};
struct st s[100005];
bool cmp(struct st x, struct st y) 
{
    if (x.a == y.a) return x.b < y.b;
    return x.a < y.a;
}
int main() 
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) 
    {
        cin >> s[i].a >> s[i].b;
    }
    sort(s + 1, s + n + 1, cmp);
    int l, r;
    l = s[1].a;
    r = s[1].b;
    for (int i = 2; i <= n; i++) 
    {
        if (s[i].a <= r) 
        {
            r = max(r,s[i].b);
        } 
        else 
        {
            cout << l << " " << r << endl;
            l = s[i].a;
            r = s[i].b;
        }
    }
    cout << l << " " << r << endl;
    return 0;
}


http://www.niftyadmin.cn/n/5537354.html

相关文章

mybatispuls 分页插件的基本原理是什么?

MyBatis-Plus 是一个基于 MyBatis 的增强框架,它提供了许多额外的功能,其中分页插件是一个常用的功能。分页插件的基本原理是拦截 SQL 语句,在执行查询之前对 SQL 进行修改,以实现分页的功能。以下是 MyBatis-Plus 分页插件的基本原理及其工作机制: 1. 基本原理 分页插件…

【解码现代 C++】:实现自己的智能 【String 类】

目录 1. 经典的String类问题 1.1 构造函数 小李的理解 1.2 析构函数 小李的理解 1.3 测试函数 小李的理解 1.4 需要记住的知识点 2. 浅拷贝 2.1 什么是浅拷贝 小李的理解 2.2 需要记住的知识点 3. 深拷贝 3.1 传统版写法的String类 3.1.1 拷贝构造函数 小李的理…

Unity+OpenCV+Dlib实现换脸+图片生成+上传服务器+生成二维码[纯干货]

UnityOpenCVDlib实现换脸图片生成上传服务器生成二维码 功能描述 一句话描述&#xff1a;让游客体验一下当宇航员的乐趣。 具体功能&#xff1a;游客通过摄像头拍照&#xff0c;生成有着“自己的脸”的宇航员的图片&#xff0c;然后展示二维码&#xff0c;供游客下载。 效果…

Elasticsearch 使用聚合进行数据分析

在大数据时代&#xff0c;数据的价值不仅仅在于存储&#xff0c;更在于如何从海量数据中提取出有价值的信息。Elasticsearch&#xff0c;作为一个强大的搜索引擎和数据分析平台&#xff0c;通过其内置的聚合&#xff08;Aggregations&#xff09;功能&#xff0c;为我们提供了一…

数据库详细复习第三章SQL语句

SQL 第三章&#xff1a;SQL语句3.1 SQL概述3.1.3 SQL 语句类型1、数据定义语句2、数据操纵语言3、数据查询语言4、数据控制语言5、事务处理语言 3.1.4 SQL数据类型1、字符串型2、整数型3、浮点数型4、货币型5、日期型 3.2 数据定义语句3.2.1 数据库的定义3.2.2 数据库表对象的定…

大数据面试题之数据库(1)

目录 数据库中的事务是什么&#xff0c;MySQL中是怎么实现的 MySQL事务的特性? 数据库事务的隔离级别?解决了什么问题?默认事务隔离级别? 脏读&#xff0c;幻读&#xff0c;不可重复读的定义 MySQL怎么实现可重复读? 数据库第三范式和第四范式区别? MySQL的…

千益畅行,旅游卡,如何赚钱?

​ 赚钱这件事情&#xff0c;只有自己努力执行才会有结果。生活中没有幸运二字&#xff0c;每个光鲜亮丽的背后&#xff0c;都是不为人知的付出&#xff01; #旅游卡服务#

自定义一个背景图片的高度,随着容器高度的变化而变化,小于图片的高度时裁剪,大于时拉伸100%展示

1、通过js创建<image?>标签来获取背景图片的宽高比&#xff1b; 2、当元素的高度大于原有比例计算出来的高度时&#xff0c;背景图片的高度拉伸自适应100%&#xff0c;否则高度为auto&#xff0c;会自动被裁减 3、背景图片容器高度变化时&#xff0c;自动计算背景图片的…