priority_queue优先队列,插入进去的元素都会从大到小排好序
PS:在priority_queue<ll, vector<ll>, greater<ll> > pq;
中
第一个参数为数据类型,第二个参数为保存数据的容器(默认为vector<int>
),第三个参数为元素比较函数(默认为less)。//默认算子为less,即小的往前排,大的往后排(出队时序列尾的元素出队)
struct cmp {
operator bool ()(int x, int y)
{
return x > y; // x小的优先级高 //也可以写成其他方式,如: return p[x] > p[y];表示p[i]小的优先级高
}
};
priority_queue<