1236:区间合并
时间:2020-05-25
本文章向大家介绍1236:区间合并,主要包括1236:区间合并使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这也是一本通上的一道分治的题目,简单的对题目分析来说,就是类似于下面这个手绘稿
(画的丑莫喷)
就是理解为对区间进行一个合并,最后输出所有合在一起的最后的闭区间的头尾
如果没有输出No、
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #define itn int #define INF 0x3F3F3F3F using namespace std; struct code{ int left; int right; }a[100000]; int cmp(code p,code q){ if(p.left==q.left ) return p.right<q.right; else return p.left<q.left; } int main() { int n; int i; int max=-INF; cin>>n; for(int i=1;i<=n;i++) cin>>a[i].left>>a[i].right; sort(a+1,a+1+n,cmp); for(i=1;i<n;i++) { if(a[i].right>max) max=a[i].right; if(a[i+1].left>max) { cout<<"no"<<endl; return 0; } } if(a[i].right>max) max=a[i].right; cout<<a[1].left<<" "<<max; return 0; }
这个代码没加注释,就简单理解一下,宁们也方便ctrl+c ctrl+v
我定义了一个结构体,把每个区间当做是一个结构
每个的头为left 尾为right 把最大值定义为了0x3F3F3F3F,在输入之后,将其按照头的大小进行排序,方便操作,
int cmp(code p,code q){ if(p.left==q.left ) return p.right<q.right; else return p.left<q.left; }
利用这个对于大小方便比较
然后就是一个简单的循环模拟,最后输出就ok了
原文地址:https://www.cnblogs.com/--840-114/p/12957580.html
- 【PSU】AIX 11g RAC自动打GI PSU5
- 详解自动识别验证码,LSTM大显身手
- 智能算法——PageRank
- 【Go 语言社区】Golang 可变参数的使用
- 【Go 语言社区】Golang源码解读之map
- 一则报警信息所折射出来的诸多问题(r9笔记第14天)
- Java面试系列17-编程题-读取服务器字符、实现序列化、计数器、1000阶乘、n出列问题等
- tensorflow(一)windows 10 64位安装tensorflow1.4与基本概念解读tf.global_variables_initializer
- 容灾切换中的数据库宕机问题简单分析(一) (r9笔记第12天)
- Java面试系列14
- linux下搭建django记录笔记,未完稿,节后继续
- Java案例-打印图形与π
- 关于两个简单问题的分析(r9笔记第10天)
- 初步解读Golang中的接口相关编写方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 打印流
- 文件分割与合并
- 其他流---基本数据处理流
- 其他流---字节数组流与文件流对接
- 其他流---字节流数组
- 字符流出现乱码问题
- 缓冲流---为字节流和字符流复制文件增加缓冲流
- 字符流---输入输出与复制文本文件
- Spring 中的几个 PostProcessor 的区别与联系
- Spring 中基于注解的事务控制及原理分析
- Spring 中根据环境切换配置 @Profile
- Spring 中的属性赋值
- Spring 中控制 Bean 生命周期的几种方式及 BeanPostProcessor 执行原理
- Spring 中的 @Import 注解及向容器中添加 Bean 的几种方式
- Spring 注解开发之 @Conditional