首页 > 编程语言 >区间合并(C++模板)

区间合并(C++模板)

时间:2025-01-18 22:57:17浏览次数:3  
标签:2e9 int ed 合并 segs st seg C++ 模板

//区间合并(模板)

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

typedef pair<int, int>PA;
vector<PA>segs;
int n;

int Hebing(vector<PA>& segs)
{
	vector<PA>res;
	sort(segs.begin(), segs.end());
	int st = -2e9, ed = -2e9;
	for (PA seg : segs)
	{
		if (ed < seg.first)
		{
			if (ed != -2e9)res.push_back({ st,ed });
			st = seg.first, ed = seg.second;
		}
		else ed = max(ed, seg.second);
	}
	if (st != -2e9)res.push_back({ st,ed });
	segs = res;
}

int main()
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		int l, r;
		scanf("%d %d", &l, &r);
		segs.push_back({ l,r });
	}
	Hebing(segs);
	printf("%d\n", segs.size());//合并区间后的区间个数
	return 0;
}

标签:2e9,int,ed,合并,segs,st,seg,C++,模板
From: https://blog.csdn.net/2302_79997040/article/details/145233942

相关文章

  • C++ STL 初探:打开标准模板库的大门
    文章目录C++STL初探:打开标准模板库的大门前言第一章:什么是STL?1.1标准模板库简介1.2STL的历史背景1.3STL的组成第二章:STL的版本与演进2.1不同的STL版本2.2STL的影响与重要性第三章:为什么学习STL?3.1从手动编写到标准化解决方案3.2泛型编程的核心3.3STL......
  • c++打字游戏
    #include<iostream>#include<string>#include<ctime>#include<cstdlib>#include<chrono>usingnamespacestd;usingnamespacestd::chrono;//预定义一些单词供游戏使用conststringwords[]={"apple","banana",&q......
  • 将IDEA的setter代码模板改成链式setter
    setter传统模式UserInfouserInfo=newUserInfo();userInfo.setUserId("zhangsan");userInfo.setUserName("张三");userInfo.setAge(18);每一行都需要分号来隔断,影响编码效率。链式setterUserInfouserInfo=newUserInfo().setUserId("zhangsan").setUserNam......
  • 函数模板问题
    在笔试过程中遇到函数模板问题,记录问题并给出解答。问题:下面代码会执行什么结果:#include<iostream>usingnamespacestd;template<typenameT>voidprint(Tt){cout<<"Template:"<<t<<endl;}voidprint(inti){cout<<"int:"&......
  • 【C++】list容器
    目录学习途径list的使用list的一些构造迭代器说明接口使用迭代器失效问题list和vector对比模拟实现list迭代器的模拟(重点)List.h文件学习途径在学习list之前,我们可以查询一些相关文档来学习!文档详情:list文档学习list的使用list的一些构造图:构造使用示范:......
  • C++基础学习03
    C++基础学习032025-01-1715:59:09星期五关于数组数组有几个特点固定大小相同的数据类型连续存储这点就是说数组在内存中是连续存储的下标访问这点就是我们可以通过[num]的方式来对数组进行访问一般来说,我们使用dataTypearrayName[arraySize]的方式来创建......
  • GESP C++四级考试:指针
    C++指针的考试内容指针的基本概念指针是一种特殊的变量,用于存储数据的内存地址。指针变量中存储的是内存地址,定义指针变量时必须指定其指向的类型。指针的类型指针可以指向任意类型的数据,包括基本数据类型(如int、char、float等)和自定义复杂类型(如结构体)。不同类型的数据占用......
  • Git三路合并算法完全指南:优雅处理复杂冲突[2]
    在使用git作为协作工具时,常常因为不熟悉git的三路合并算法而出现冲突,导致不敢随便提交代码,这里就来为大家解释下git三路合并算法的完全指南。三路合并三路合并算法的名称源于其合并过程中涉及的三个代码版本。在标准的Git开发流程中,开发者从生产分支fork出新分支进行开发,完成开......
  • 数据结构 Trick 之:平衡树有交合并
    能解决的问题类型需要将两个值域有交可重集合并的问题。优缺点无思路这个Trick基于FHQ。首先,让我们回顾一下FHQ的merge:intmerge(intl,intr){if(node[l].randd<=node[r].randd){pushdown(l);node[l].rs=merge(node[l].rs,r);......
  • C++新文件模板
    1.普通模板#include<bits/stdc++.h>usingnamespacestd;#defineinfile"infile.in"#defineoutfile"outfile.out"#definecin_cout_f#definespeedup#ifdefcin_cout_f#definecin_____in_____#definecout_____out_____ifstream____......