首页 > 其他分享 >每日一题-区间分组

每日一题-区间分组

时间:2022-11-09 22:02:38浏览次数:42  
标签:该组 每日 分组 端点 区间 一题

区间分组

	sort(a.begin(), a.end());

	priority_queue<int, vector<int>, greater<int>> q;
	
	for (int i = 0; i < n; ++i) {
		if (q.empty() or q.top() >= a[i].first) {
			cout << a[i].first << ' ' << a[i].second << '\n';
			q.push(a[i].second);
		} else {
			q.pop();
			q.push(a[i].second);
		}
	}
	
	cout << q.size() << '\n';

问题描述

给定若干区间,问将这些区间分成互不重叠组的最少组数。

解法

按左端点排序后,扫一遍每次将新开组的右端点推入小根堆,对于堆顶最小的右端点,如果当前区间可以放入该组,更新该组的的右端点,否则需要新开一组。O(nlogn)

标签:该组,每日,分组,端点,区间,一题
From: https://www.cnblogs.com/whose-dream/p/16875322.html

相关文章

  • 每日一题-区间覆盖
    区间覆盖sort(a.begin(),a.end()); intans=0,las=s; for(inti=0;i<n;++i){ intj=i; intr=-2e9; while(j<nanda[j].first<=......
  • 每日一题-叠罗汉的牛
    叠罗汉的牛 sort(a.begin(),a.end(),[](constauto&A,constauto&B){ returnA.first+A.second<B.first+B.second; }); intsum=0,ans=-2e9; ......
  • 基础算法篇——区间合并
    基础算法篇——区间合并本次我们介绍基础算法中的区间合并,我们会从下面几个角度来介绍:区间合并区间合并我们这次的目的很简单:快速高效的完成区间合并任务区间合......
  • 每日一题之Vue数据劫持原理是什么?
    什么是数据劫持?定义:数据劫持,指的是在访问或者修改对象的某个属性时,通过一段代码拦截这个行为,进行额外的操作或者修改返回结果。简单地说,就是当我们触发函数的时候动......
  • AI云边端EasyCVR平台新功能解析:支持为角色选择多级分组
    EasyCVR平台可支持多类型设备、多协议方式接入,具体包括:国标GB28181协议、RTMP、RTSP/Onvif、海康Ehome,以及海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石SDK等,可覆盖......
  • AcWing 3583 整数分组(01背包 + 双指针)
    原题链接本题是比较明显的01背包,选或者不选,中间可以用双指针找到最后可以选到的区间长度,那么如果选当前最后一个区间的话最后就要求这个区间前面的长度要最大状态表示:f[......
  • 使用前缀和数组解决"区间和查询"问题
    本文已收录到 GitHub·AndroidFamily,有Android进阶知识体系,欢迎Star。技术和职场问题,请关注公众号[彭旭锐]进Android面试交流群。前言大家好,我是小彭。今......
  • 2022-11-08 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......
  • MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
    一、序言众所周知,MybatisPlus在处理单表DAO操作时非常的方便。在处理多表连接连接查询也有优雅的解决方案。今天分享MybatisPlus基于Lambda表达式优雅实现聚合分组查询。......
  • C#分组求和
    List<ChemicalInventory>listInventory=newList<ChemicalInventory>();foreach(ChemicalInventoryInventory=newChemicalInventory();//赋值省略listInventory......