信息学奥赛一本通(1236:区间合并)
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:区间合并)相关推荐
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 《信息学奥赛一本通 提高篇》
提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1章 贪心算法_青少年趣味编程-CSDN博客 提高篇 第一部分 基础算法 第1章 贪心算法 提高篇 第一部分 基础算法 第1 ...
- 信息学奥赛一本通在线提交地址
信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...
- 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”
董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...
- 信息学奥赛一本通 提高篇 第5章 矩阵乘法
例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...
- 《信息学奥赛一本通提高篇》第6章 组合数学
例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
最新文章
- 06Chrome调试工具
- linux tomcat apr安装,Linux下Tomcat8.0.44配置使用Apr的方法
- fir.im Weekly - 做一款 App 需要考虑什么
- 信息学奥赛C++语言:社会实践任务
- 在Windows系统下搭建ELK日志分析平台
- stream 定长循环_Java8之Stream流代替For循环操作
- word2vec 细节解析1
- ERP管理软件哪一家好?比较好的ERP管理系统软件推荐
- android升级mcu升级,车载mcu需要升级吗_车载mcu升级有什么用
- Excel如何将数据上下调换位置
- linux那些事之page fault(do_fault)(5)
- 捋一捋Python中的List(下)
- 主动笔驱动芯片市场现状及未来发展趋势
- 似然函数、最大似然函数理解
- python绘制单线图_如何绘制管道单线图
- 多目标跟踪SOTA | TransTrack改进版,模型减小60%,复杂性降低80%!
- 数据分析之异常值检验的方法
- 编码影响页面的渲染:utf-8下的Arial字体中文显示
- python控件获取焦点_PyQt控件键盘焦点
- 华为系统鸿蒙什么意思,华为新推出的鸿蒙系统是什么意思,怎么去理解?
热门文章
- dnt 删除不良数据
- ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
- Cortex-M3 NVIC与中断控制
- html设置表格和div的距离,CSS/HTML Div调整大小和表格定位
- java怎么快速创建监听类_如何创建监听器
- Ant-Design-Vue和Icon按需加载方案 - JeecgBoot实战
- JEECG_3.7.2新版本入门讲解—UI标签库专题
- Jeecg Maven本地仓库下载地址
- 计算方法太牛了,留着以后教孩子!!!
- JavaEE基础(05):过滤器、监听器、拦截器,应用详解