「LuoguP2434」 [SDOI2005]区间(贪心
Description
现给定n个闭区间[ai, bi],1<=i<=n。这些区间的并可以表示为一些不相交的闭区间的并。你的任务就是在这些表示方式中找出包含最少区间的方案。你的输出应该按照区间的升序排列。这里如果说两个区间[a, b]和[c, d]是按照升序排列的,那么我们有a<=b< c<=d。
请写一个程序:
读入这些区间;
计算满足给定条件的不相交闭区间;
把这些区间按照升序输出。
Input
第一行包含一个整数n,3<=n<=50000,为区间的数目。以下n行为对区间的描述,第i行为对第i个区间的描述,为两个整数1<=ai< bi<=1000000,表示一个区间[ai, bi]。
Output
输出计算出来的不相交的区间。每一行都是对一个区间的描述,包括两个用空格分开的整数,为区间的上下界。你应该把区间按照升序排序。
Sample Input
5
5 6
1 4
10 10
6 9
8 10
Sample Output
1 4
5 10
题解
题意就是线段树的感觉,但是可以贪心(这能叫贪心吧)水过。
按左端点从小到大sort,维护右端点,如果断茬儿了 输出 更新L
看代码吧2333
#include<cmath>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct emm{
int l,r;
}a[];
bool cmp(emm qaq,emm qwq)
{
if(qaq.l==qwq.l)return qaq.r<qwq.r;
return qaq.l<qwq.l;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;++i)
scanf("%d%d",&a[i].l,&a[i].r);
sort(a+,a+n+,cmp);
int l=a[].l,r=a[].r;
for(int i=;i<=n;++i)
{
if(a[i].l<=r)r=max(r,a[i].r);
else{
cout<<l<<" "<<r<<endl;
l=a[i].l,r=a[i].r;
}
}
if(l){cout<<l<<" "<<r<<endl;}
return ;
}
「LuoguP2434」 [SDOI2005]区间(贪心的更多相关文章
- 「模板」 FHQ_Treap 区间翻转
「模板」 FHQ_Treap 区间翻转 没有旋转的 Treap 实现区间操作的功能,很好理解,也很好写,只是速度不算太快. 对于要翻转的区间,把整棵 Treap(存有区间 \([1,n]\) 的信息) ...
- 「BZOJ4029」[HEOI2015] 定价 贪心
「BZOJ4029」[HEOI2015] 定价 2015年4月28日2,7490 Description 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 ...
- LG3205/BZOJ1996 「HNOI2010」合唱队 区间DP
区间DP 区间DP: 显然是一个区间向左右拓展形成的下一个区间,具有包含关系,所以可以使用区间DP. 状态设计: 考虑和关路灯一样设计状态 因为不知道当前这个区间是从哪个区间拓展而来,即不知道这个区间 ...
- 「HNSDFZ暑期集训 测试1」「LuoguT36485」 括号(贪心
Description 给定一个由左括号'('和右括号')'组成的字符串s,其中第i个括号的权值为ai. 我们定义一个括号序列t为合法括号序列,当且仅当满足下列条件之一: 1.t为空串 2.t=(A) ...
- 「Ynoi2018」未来日记
「Ynoi2018」未来日记 区间x->y,kth值... 不管了,先序列分块... 查询 第k值,假定知道每个数的权值,对值域分块. 对于整块,维护前\(i\)个块当中,值域在\(j\)块里以 ...
- 「bzoj1003」「ZJOI2006」物流运输 最短路+区间dp
「bzoj1003」「ZJOI2006」物流运输---------------------------------------------------------------------------- ...
- 「JSOI2013」贪心的导游
「JSOI2013」贪心的导游 传送门 多次询问区间内%一个数的最大值 我们不妨设这个数为M_sea 值域比较小所以考虑分块维护. 我们观察到对于给定的一个 \(p\) ,函数 \(y = x \% ...
- 「模板」 线段树——区间乘 && 区间加 && 区间求和
「模板」 线段树--区间乘 && 区间加 && 区间求和 原来的代码太恶心了,重贴一遍. #include <cstdio> int n,m; long l ...
- 「USACO16OPEN」「LuoguP3147」262144(区间dp
P3147 [USACO16OPEN]262144 题目描述 Bessie likes downloading games to play on her cell phone, even though ...
随机推荐
- Netty构建游戏服务器(三)--netty spring简单整合
一,基本方法 上节实现了netty的基本连接,这节加入spring来管理netty,由spring来开启netty服务. 在netty服务器中,我们建立了三个类:HelloServer(程序主入口) ...
- PC下ubuntu查找PC串口并加入用户组
1. 查看ttyS0隶属的组:ls -l /dev/ttyS0 //发现隶属于dialout组 输出: crw-rw---- 1 root dialout 4, 64 9月 9 08:23 /d ...
- reason: '*** setObjectForKey: object cannot be nil (key: 1)'-crash!
[self.imageDownloadsInProgress setObject:iconDownloader forKey:[NSNumber numberWithInteger:tag]]; 字典 ...
- Android eclipse 项目R文件无法生成
这个问题相信非常多人从网上已经搜到不少的解决方式. android 无法生成R文件 是件痛苦的事情.即使有时候你xml文件没有错误,他都无法生成. 针对此问题,我总结下面几个方面的原因. 一.xml本 ...
- 《python源代码剖析》笔记 Python的编译结果
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.python的运行过程 1)对python源码进行编译.产生字节码 2)将编译结果交给p ...
- 不能选择sublime作为默认打开方式的解决办法
Sublime Text 绿色版删除后无法设置为默认打开方式…而且网上也没有给出明确的解决办法 注册表的解决办法: 删除 HKEY_CURRENT_USER\Software\Classes\Appl ...
- java中类加载顺序(深入Java)
未涉及虚拟机 0.<init>与<clinit>的区别 1.类的加载过程 2.类的使用方式 3.类的加载来源 4.重载之泛型参数不同可以吗 5.参考 引子 记得上次中秋一哥们写 ...
- Python - 学习参考资料
官方reference: 1.Numpy的API Reference https://docs.scipy.org/doc/numpy/reference/routines.html 2.SciPy的 ...
- linux 命令之 watch
watch能够帮你监測一个命令的执行结果,省得你一遍遍的手动执行.在Linux下.watch是周期性的执行下个程序.并全屏显示执行结果.你能够拿他来监測你想要的一切命令的结果变化,比方 tail 一个 ...
- 【Web前端】清除浮动&css中文字体
清理浮动有非常多种方式,像使用 br 标签自带的 clear 属,使用元素的 overflow.使用空标签来设置 clear:both 等等.但考虑到兼容问题和语义化的问题,一般我们都会使用例如以下代 ...