区间合并(计蒜网)
时间:2022-07-24
本文章向大家介绍区间合并(计蒜网),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
蒜头君给定 nn 个闭区间 [a_i, b_i] [a i,b i ],其中 i=1,2,…,ni=1,2,…,n。
任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1,2][1,2] 和 [2,3][2,3] 可以合并为 [1,3][1,3],[1,3][1,3] 和 [2,4][2,4] 可以合并为 [1,4][1,4],但是 [1,2][1,2] 和 [3,4][3,4] 不可以合并。
我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出,否则输出 “no”。
输入格式 第一行为一个整数 nn,3 le n le 500003≤n≤50000。表示输入区间的数量。 之后 nn 行,在第 ii 行上(1 le i le n1≤i≤n),为两个整数 a_ia i 和 b_ib i ,整数之间用一个空格分隔,表示区间 [a_i, b_i][a i,b i ](其中 1 le a_i le b_i le 100001≤a ≤b i ≤10000)。 输出格式 输出一行,如果这些区间最终可以合并为一个闭区间,输出这个闭区间的左右边界,用单个空格隔开;否则输出 “no”。
输出时每行末尾的多余空格,不影响答案正确性
思路:详细见代码,用到了pair,然后有交叉就能合并
#include<bits/stdc++.h>
using namespace std;
bool cmp(pair<int,int> p1,pair<int,int> p2){
if(p1.first!=p2.first){
return p1.first<p2.first;
}else{
return p1.second<p2.second;
}
}
int main(){
//有交叉就可以合并
pair<int,int> a[50010];
int n;
cin >> n;
for(int i=0;i<n;i++){
cin >> a[i].first>>a[i].second;
}
sort(a,a+n,cmp);
pair<int,int> t=a[0];
bool flag=true;
for(int i=1;i<n;i++){
if(a[i].first <= t.second && t.second<=a[i].second){
t.second=a[i].second;
}else if(t.second < a[i].first){
flag=false;
break;
}
}
if(flag==false){
cout<<"no"<<endl;
}else{
cout<<t.first<<" "<<t.second<<endl;
}
return 0;
}
- 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 数组属性和方法
- 有赞 Flutter 混编方案
- 最近开发问题
- echarts相关问题总结
- 视频上云EasyNTS组网硬件设备登录后自动下线并清除设备信息是什么原因?
- 震惊! 再也不怕蹭网被发现了!
- 国标GB28181协议客户端EasyGBS国标视频平台级联EasyNVR:EasyNVR到EasyGBS上是如何注册及注销的?
- git全局忽略文件配置
- 2018-10-16近期vue开发总结
- 有赞埋点实践
- 树莓派配置LEDE(openwrt衍生版)拨号
- Android 沉浸式解析和轮子使用
- 腾讯云CDN使用(接入方式:COS源)
- 工作流引擎在有赞 DevOps 中的实践
- 微信带备注群发真好玩!
- 微信机器人-定时群发+智能回复