Hiraeth @ 2019-04-08 00:00:25
#include<bits/stdc++.h>
using namespace std;
priority_queue<int> lq;
priority_queue<int,vector<int>,greater<int> > rq;
//两个队列 一个队列维护一半 始终保证两个队列的元素个数差为1 那么元素个数较多的队首元素即为区间中位数
int n,p;
int main(){
scanf("%d%d",&n,&p);
lq.push(p);
printf("%d\n",lq.top());
for (int i=2;i<=n;i++){
scanf("%d",&p);
if (p<rq.top()) lq.push(p);
else rq.push(p);
while (lq.size()-rq.size()>1) {
rq.push(lq.top());
lq.pop();
}
while (rq.size()-lq.size()>1){
lq.push(rq.top());
rq.pop();
}
if (i%2!=0){
if (rq.size()>lq.size()) printf("%d\n",rq.top());
else printf("%d\n",lq.top());
}
}
return 0;
}
by Sesame @ 2019-04-08 00:19:35
lq.top() 是成员函数,不能直接当变量使用。
都红名了就不要叫什么萌新了
by DARKSTALKING @ 2019-04-08 06:42:46
红名大佬请关照我们这些蓝名jr
by Hiraeth @ 2019-04-08 15:26:52
@Sesame 改成了tmp还是炸了啊
by youkasgs_wyb @ 2019-07-22 13:49:32
这题是什么意思我都不知道