1236:区间合并

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 7396     通过数: 3040

【题目描述】

给定 n个闭区间 [ai,bi],其中i=1,2,...,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1,2] 和 [2,3] 可以合并为 [1,3],[1,3] 和 [2,4] 可以合并为 [1,4],但是[1,2] 和 [3,4] 不可以合并。

我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出,否则输出nono。

【输入】

第一行为一个整数n,3≤n≤50000。表示输入区间的数量。

之后n行,在第i行上(1≤i≤n),为两个整数 ai 和 bi ,整数之间用一个空格分隔,表示区间 [ai,bi](其中 1≤ai≤bi≤10000)。

【输出】

输出一行,如果这些区间最终可以合并为一个闭区间,输出这个闭区间的左右边界,用单个空格隔开;否则输出 no。

【输入样例】

5
5 6
1 5
10 10
6 9
8 10

【输出样例】

1 10

【分析】

设坐标A点(x1,y1),B点(x2,y2)。

AB相交,则x1≤x2≤y1≤y2,如下图所示。

AB不相交,则x1≤y1≤x2≤y2,如下图所示。

AB包含,则x1≤x2≤y2≤y1,如下图所示。

以样例为例,先对区间进行排序,x从小到大,如果x相同,则比较y。

排序前,

排序后,

合并区间即可。

【参考代码】

#include <stdio.h>
#include <stdlib.h>
#define N 50010
struct point
{int x;int y;
}a[N],t;int cmp(const void *a ,const void *b)
{struct point *aa = (struct point *)a;struct point *bb = (struct point *)b;if(aa->x != bb->x)return aa->x > bb->x ? 1 : -1;elsereturn aa->y > bb->y ? 1 : -1;
}int main()
{int i,j,n,flag=0;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",&a[i].x,&a[i].y);qsort(a,n,sizeof(a[0]),cmp);t=a[0];for(i=1;i<n;i++){if(a[i].x > t.y)      //没有交集{printf("no\n");flag=1;break;}else                  //包含或者相交关系{if(t.y < a[i].y)  //相交,单分支if 即可,包含不用处理t.y=a[i].y;}}if(flag==0)printf("%d %d\n",t.x,t.y);return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1236

信息学奥赛一本通(1236:区间合并)相关推荐

  1. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  2. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  3. 《信息学奥赛一本通 提高篇》

    提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...

  4. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  5. 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...

  6. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  7. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  8. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  9. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  10. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

最新文章

  1. 06Chrome调试工具
  2. linux tomcat apr安装,Linux下Tomcat8.0.44配置使用Apr的方法
  3. fir.im Weekly - 做一款 App 需要考虑什么
  4. 信息学奥赛C++语言:社会实践任务
  5. 在Windows系统下搭建ELK日志分析平台
  6. stream 定长循环_Java8之Stream流代替For循环操作
  7. word2vec 细节解析1
  8. ERP管理软件哪一家好?比较好的ERP管理系统软件推荐
  9. android升级mcu升级,车载mcu需要升级吗_车载mcu升级有什么用
  10. Excel如何将数据上下调换位置
  11. linux那些事之page fault(do_fault)(5)
  12. 捋一捋Python中的List(下)
  13. 主动笔驱动芯片市场现状及未来发展趋势
  14. 似然函数、最大似然函数理解
  15. python绘制单线图_如何绘制管道单线图
  16. 多目标跟踪SOTA | TransTrack改进版,模型减小60%,复杂性降低80%!
  17. 数据分析之异常值检验的方法
  18. 编码影响页面的渲染:utf-8下的Arial字体中文显示
  19. python控件获取焦点_PyQt控件键盘焦点
  20. 华为系统鸿蒙什么意思,华为新推出的鸿蒙系统是什么意思,怎么去理解?

热门文章

  1. dnt 删除不良数据
  2. ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
  3. Cortex-M3 NVIC与中断控制
  4. html设置表格和div的距离,CSS/HTML Div调整大小和表格定位
  5. java怎么快速创建监听类_如何创建监听器
  6. Ant-Design-Vue和Icon按需加载方案 - JeecgBoot实战
  7. JEECG_3.7.2新版本入门讲解—UI标签库专题
  8. Jeecg Maven本地仓库下载地址
  9. 计算方法太牛了,留着以后教孩子!!!
  10. JavaEE基础(05):过滤器、监听器、拦截器,应用详解