题目描述

现给定n个闭区间[ai, bi],1<=i<=n。这些区间的并可以表示为一些不相交的闭区间的并。你的任务就是在这些表示方式中找出包含最少区间的方案。你的输出应该按照区间的升序排列。这里如果说两个区间[a, b]和[c, d]是按照升序排列的,那么我们有a<=b<c<=d。

请写一个程序:

读入这些区间;

计算满足给定条件的不相交闭区间;

把这些区间按照升序输出。

输入输出格式

输入格式:

第一行包含一个整数n,3<=n<=50000,为区间的数目。以下n行为对区间的描述,第i行为对第i个区间的描述,为两个整数1<=ai<bi<=1000000,表示一个区间[ai, bi]。

输出格式:

输出计算出来的不相交的区间。每一行都是对一个区间的描述,包括两个用空格分开的整数,为区间的上下界。你应该把区间按照升序排序。

输入输出样例

输入样例#1: 复制

5
5 6
1 4
10 10
6 9
8 10
输出样例#1: 复制

1 4
5 10 线性做法,类似于括号匹配
开始想的是线段树+二分,nlog^2n,1e6好想过不了GG
因为是在做DP时做到的,就归为DP吧
#include<cstdio>
#include<algorithm>
const int maxn = 1e6+;
inline int read() {
int x=,f=;
char c=getchar() ;
while(c<''||c>''){ if(c=='-')f=-;c=getchar();};
while(c<=''&&c>='')x=x*+c-'',c=getchar();
return x*f;
}
int n;
struct node{
int h,t;
}sth[];
int v1[maxn],v2[maxn];
int main() {
int ttt=;
n=read();
for(int a,b,i=;i<=n;++i) {
a=read();v1[a]++;
b=read(),v2[b]--;
ttt=std::max(ttt,std::max(b,a));
}
int tmp=;
int op=;
for(int i=;i<=ttt;++i) {
if(v1[i]&&!tmp) printf("%d ",i),op++;
tmp+=v1[i]+v2[i];
if(v2[i]&&!tmp) printf("%d\n",i),op++;
}
return ;
}

luogu P2434 [SDOI2005]区间的更多相关文章

  1. 洛谷——P2434 [SDOI2005]区间

    P2434 [SDOI2005]区间 题目描述 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间 ...

  2. 洛谷P2434 [SDOI2005]区间

    题目描述 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照区间的升序排列 ...

  3. P2434 [SDOI2005]区间

    题目描述 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照区间的升序排列 ...

  4. 【洛谷】P2434 [SDOI2005]区间(暴力)

    题目描述 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照区间的升序排列 ...

  5. luogu P2439 [SDOI2005]阶梯教室设备利用

    题目链接 luogu P2439 [SDOI2005]阶梯教室设备利用 题解 dp 代码 #include<vector> #include<cstdio> #include& ...

  6. [luogu]P1463 [SDOI2005]反素数ant[dfs][数学][数论]

    [luogu]P1463 [SDOI2005]反素数ant ——!x^n+y^n=z^n 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足: ...

  7. 题解 洛谷P2434 【[SDOI2005]区间】

    本题的贪心策略是以区间起点位置由小到大排序,然后开始合并. 区间按起点顺序由小到大排序,可以最大化合并成功的可能. 这个脑补应该不难想出来.(读者自证不难 直接上代码: #include <bi ...

  8. [SDOI2005]区间

    题目描述 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照区间的升序排列 ...

  9. 「LuoguP2434」 [SDOI2005]区间(贪心

    Description 现给定n个闭区间[ai, bi],1<=i<=n.这些区间的并可以表示为一些不相交的闭区间的并.你的任务就是在这些表示方式中找出包含最少区间的方案.你的输出应该按照 ...

随机推荐

  1. Diycode开源项目 磁盘图片缓存+自定义webViewClient+图片点击js方法

    1.磁盘图片缓存器DiskImageCache 1.1.这个类很多情况都可能用的到,耦合性很低,所以分开讲. 源代码: /* * Copyright 2017 GcsSloop * * License ...

  2. Android如何添加多张引导页

    摘要:项目需要添加多张引导页,所以在网上搜集了一些资料并整理好. Step1 添加一个GuideActivity. 其实这个引导页无非就是一个Activity,里面有一个ViewPager而已.多张图 ...

  3. java流、文件以及IO

    读写文件 一个流被定义为一个数据序列.输入流用于从源读取数据,输出流用于向目标写数据. 输入流和输出流的类层次图. FileInputStream FileInputStream用于从文件中读取数据, ...

  4. linux批量匹配移动文件的方法

    需求 有需要移动的文件名清单 filename.txt filename.txt 内容如下: 15542842 1582457 1282427 1532158 4542457 1582453 6552 ...

  5. maven学习(十二)——maven聚合与继承实战

    聚合与继承实战 创建四个Maven项目,如下图所示:

  6. PAT1032

    为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每行给出一位 ...

  7. LAMP第三部分php配置和mysql配置

    9. 配置防盗链http://www.lishiming.net/thread-71-1-1.html 防止别人的网站,放你网站图片的链接, 位置一般情况下在 /usr/local/apache/co ...

  8. 笔记 docker入门笔记

    安装sudo apt-get remove docker docker-engine docker-ce docker.iosudo apt-get updatesudo apt-get instal ...

  9. css 文字垂直居中问题

    CSS 文字垂直居中问题 问题:在 div 中文字居中问题: 当使用 line-height:100%%; 时,文字没有居中,如下: html: <div id="header_log ...

  10. 【12】react 之 redux(1)

    TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象:使用数据流能帮我们明确了行为对应的响应,这和react的状态可预测的思想是不谋而合的. 常见的数据流框架 ...