C++ priority_queue优先队列的用法

       在优先队列中,优先级高的元素先出队列。其模板声明带有三个参数,priority_queue, 其中Type为数据类型,Container为保存数据的容器,Functional为元素比较方式。

        

        priority_queue(),默认按照从小到大排列。

        加上greater<>后,数据从大到小排列,top()返回的就是最小值而不是最大值!

        小根堆代表每个节点要比它的左右子节点小,因此根节点是最小的。大根堆相反.

        例如:    priority_queue, greater > heap;代表声明了一个用vector存的int类型的小根堆。

        如果大家想更熟悉的了解优先队列的用法,我推荐做一道题来练手。

区间分组

给定 NN 个闭区间 [ai,bi][ai,bi],请你将这些区间分成若干组,使得每组内部的区间两两之间(包括端点)没有交集,并使得组数尽可能小。

输出最小组数。

输入格式

第一行包含整数 NN,表示区间数。

接下来 NN 行,每行包含两个整数 ai,biai,bi,表示一个区间的两个端点。

输出格式

输出一个整数,表示最小组数。

数据范围

1≤N≤1051≤N≤105,
−109≤ai≤bi≤109−109≤ai≤bi≤109

输入样例:

3
-1 1
2 4
3 5

输出样例:

2
#include
using namespace std;
const int N=1e5+10;
struct Range{
	int l,r;
	bool operator<(const Range &W) const
	{
		return l, greater> heap;
	for(int i=0;i=t.l) heap.push(t.r);
		else
		{
			heap.pop();
			heap.push(t.r);
		}
	}
	printf("%d",heap.size());
	return  0;
}

你可能感兴趣的:(C++算法,c++,算法)