对顶堆
boy♂Next♂dooor · · 个人记录
动态维护第k大
小根堆q1,大根堆q2
核心:让两堆分别存一大一小的可能答案
insert(x):
if(x>=q1.top() || q1.empty()) q1.push(x);
else q2.push(x);
while(q1.size()>k) q2.push(q1.top()),q1.pop();
while(q1.size()<k) q1.push(q2.top()),q2.pop();
query(k)=q1.top();
动态求中位数