#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
void merge(vector<PII> &segs) {
vector<PII> res;
sort(segs.begin(), segs.end());//pair排序会优先以左端点排序
int st = -2e9, ed = -2e9;
for (auto seg : segs)
if (ed < seg.first) { //没遇任何交集 ,说明找到了一个新的区间
if (st != -2e9) //首先不能是初始的区间
res.push_back({st, ed}); //那么就把他加到答案里去
st = seg.first, ed = seg.second;
} else ed = max(ed, seg.second); //否则说明是有交集的,更新右端点
//看一下最后一个区间 ,把最后一个区间加到答案里去
if (st != -2e9) res.push_back({st, ed}); //判断主要是防止区间是空的
segs = res;
}
int main() {
int n;
scanf("%d", &n);
vector<PII> segs;
for (int i = ; i < n; i ++ ) {
int l, r;
scanf("%d%d", &l, &r);
segs.push_back({l, r});
}
merge(segs);
cout << segs.size() << endl;
return ;
}

AcWing 803. 区间合并的更多相关文章

  1. AcWing 803. 区间合并

    网址 https://www.acwing.com/solution/AcWing/content/1590/ 题目描述给定n个区间[l, r]. 合并所有有交集的区间. 输出合并完成后的区间个数. ...

  2. Acwing‘803. 区间合并

    (https://www.acwing.com/problem/content/805/) 给定 nn 个区间 [li,ri][li,ri],要求合并所有有交集的区间. 注意如果在端点处相交,也算有交 ...

  3. POJ 3667 Hotel(线段树 区间合并)

    Hotel 转载自:http://www.cnblogs.com/scau20110726/archive/2013/05/07/3065418.html [题目链接]Hotel [题目类型]线段树 ...

  4. HDU 3911 线段树区间合并、异或取反操作

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3911 线段树区间合并的题目,解释一下代码中声明数组的作用: m1是区间内连续1的最长长度,m0是区间内连续 ...

  5. HDU 1540 Tunnel Warfare 平衡树 / 线段树:单点更新,区间合并

    Tunnel Warfare                                  Time Limit: 4000/2000 MS (Java/Others)    Memory Lim ...

  6. HDU 3911 Black And White(线段树区间合并+lazy操作)

    开始以为是水题,结果...... 给你一些只有两种颜色的石头,0为白色,1为黑色. 然后两个操作: 1 l r 将[ l , r ]内的颜色取反 0 l r 计算[ l , r ]内最长连续黑色石头的 ...

  7. POJ 2750 Potted Flower (线段树区间合并)

    开始懵逼找不到解法,看了网上大牛们的题解才发现是区间合并...  给你n个数形成一个数列环,然后每次进行一个点的修改,并输出这个数列的最大区间和(注意是环,并且区间最大只有n-1个数) 其实只需要维护 ...

  8. ACM: Hotel 解题报告 - 线段树-区间合并

    Hotel Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Description The ...

  9. HDU 1540 Tunnel Warfare(线段树+区间合并)

    http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目大意:抗日战争期间进行地道战,存在n个村庄用地道连接,输入D表示破坏某个村庄(摧毁与其相连的地道, 包 ...

随机推荐

  1. C、C++和C#区别概述

    译者前言 今天突然好奇C.C++和C#这三门语言都有个C,那么它们之间到底有什么关联呢.所以就去Google了,找到了这篇文章:Understanding the Differences Betwee ...

  2. 浏览器console控制台不显示编译错误/警告

    浏览器正常显示报错应该是这样的 ,但是我一不小心右键给Hide message from...了,红色报错字体就没了,解决方法如下: 直接将红色框内的内容叉掉,恢复成filter就OK了

  3. npm常用模块之mkdirp使用

    更多npm常用模块使用请访问:npm常用模块汇总 mkdirp这是一款在node.js中像mkdir -p一样递归创建目录及其子目录. 更多使用文档请点击访问mkdirp工具官网. 安装 一键安装不多 ...

  4. 关于f(x)

    有时 z = x + y 有时 0 = x + y 有时单独用f(x) 有时 z = f(x) 很容易分不清. 从集合角度,将f(x)看成映射 即从A集合到B集合的对应关系 这样f(x)可以单独使用, ...

  5. 题解 AT4556 【12/22】

    题目传送门. ___________ 主要思路 我们可以使用\(C++\)语言中的\(string\)字符串来解. 先定义一个字符串\(s\),并输入\(s\). string s; cin>& ...

  6. 3级搭建类301-Oracle 11g RAC 双节点搭建(11.2.0.4)非公

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  7. vue中封装jsonp

    一.安装jsonp 二.封装

  8. C++->以读或写方式打开一个文件

    以读或写方式打开一个文件 #include<iostream.h>   //.h以C|非C标准引用库文件 #include<fstream.h> #include<std ...

  9. 【Unity|C#】基础篇(19)——集合库(Collections)

    [学习资料] <C#图解教程>(第6章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.c ...

  10. asp.net web core 部署问题汇总

    记录所有部署时遇到的问题.    微软官网部署说明 转载自:.NET Core 3.0 构建和部署(测试过可以使用)   A    单文件可执行文件(文件体积较大,合并所有依赖)       asp. ...