本题的贪心策略是以区间起点位置由小到大排序,然后开始合并。

区间按起点顺序由小到大排序,可以最大化合并成功的可能。

这个脑补应该不难想出来。(读者自证不难

直接上代码:

#include <bits/stdc++.h>
using namespace std;
struct interval
{
int start_,end_; } a[50010];//定义一个结构体 方便排序
int n;
inline bool cmp(interval a,interval b)
{
return a.start_<b.start_;
} int main()
{
cin>>n;
for(int i(1);i<=n;i++)
cin>>a[i].start_>>a[i].end_;
sort(a+1,a+1+n,cmp);//按照区间起点排序
int l,r;
l=a[1].start_;
r=a[1].end_;
int now(0);
while (++now<=n)
{
if(a[now].start_>r)//区间断开处理
{
cout<<l<<" "<<r<<endl;
l=a[now].start_;
r=a[now].end_>r?a[now].end_:r;
}
else r=max(a[now].end_,r);//没断开就维护一下 r
}
cout<<l<<" "<<r;//输出最后一组解
return 0;
}

最新文章

  1. spring的显示装配bean(1)------通过XML文件装配
  2. 设置float之后vertical-align失效
  3. Android自定义View滑动事件处理总结
  4. Recover Binary Search Tree [LeetCode]
  5. php--数据库三范式
  6. 【leetcode❤python】387. First Unique Character in a String
  7. EMVTag系列11《电子现金发卡行授权码》
  8. Implementation Documentation[转]
  9. android开发之socket快传文件以及消息返回
  10. 2013 Multi-University Training Contest 1 Cards
  11. 阿里开源Mysql分布式中间件:Cobar
  12. CentOS7 部署 tomcat
  13. PRINCE2重要性--光环国际培训
  14. Android笔记: fragment简单例子
  15. Java语法 示例
  16. spark-2.4.0-hadoop2.7-简单操作
  17. python,Day2,基础 2
  18. Ruby语法基础(三)
  19. Java面试题4
  20. jQuery操错题积累

热门文章

  1. 安装Scrapy的时候报错error: Microsoft Visual C++ 14.0 is required.
  2. Prometheus监控神器-Alertmanager篇(1)
  3. JavaFX桌面应用开发-HelloWorld
  4. MySQL数据库的约束
  5. 痞子衡嵌入式:一种i.MXRT下从App中进入ROM串行下载模式的方法
  6. 从一次外卖到对oauth2.0的思考
  7. 338. Counting Bits题目详解
  8. 精灵小巧的 Jsonpath 万精油:Snack3
  9. Unity3D制作类似吃鸡的小地图
  10. Redis设计与实现——独立功能的实现