/*
维护的是前k个中最大的数和它的下标
最大数为front();
*/
class Deque{
public:
deque<int>a;
deque<int>id;
int k;
bool empty(){
return a.empty();
}
void pop(int i){//弹首
while(!id.empty()&&id.front()+k<i){//越界了就弹出
a.pop_front();
id.pop_front();
}
}
void push(int x,int i){// x 数 i 下标
while(!a.empty()&&a.back()<x){
a.pop_back();id.pop_back();
}
a.push_back(x);
id.push_back(i);
pop(i);
}
};
相关文章
- 02-28luogu P5290 [十二省联考2019]春节十二响 优先队列_启发式合并
- 02-28数据结构之队列的应用(实现斐波那契数列)
- 02-28栈与队列
- 02-28[CF1304F] Animal Observation - dp,单调队列
- 02-28单调栈求笛卡尔树
- 02-28LOJ6039. 「雅礼集训 2017 Day5」珠宝【决策单调性优化DP】【分治】【思维好题】
- 02-28[Swift]LeetCode738. 单调递增的数字 | Monotone Increasing Digits
- 02-28链表队列
- 02-28B - Red and Black 直接BFS+队列
- 02-28【POJ 1442 --- Black Box】大根堆和小根堆,优先队列