每日一题 4月9日 Running Median 动态中位数

Running Median

https://ac.nowcoder.com/acm/problem/50940

图片说明
思路:用两个优先队列,一个维护大的一半,一个维护小的一半。然后就可以了。

#include <bits/stdc++.h>
#define LL long long
using namespace std;

int main(){

    int t; scanf("%d", &t);
    while(t--){

        priority_queue<int> q1;
        priority_queue<int, vector<int>, greater<int> > q2;
        int id, n, x; scanf("%d%d", &id, &n);
        printf("%d %d\n", id, (n+1)/2);
        scanf("%d", &x); printf("%d ", x); q1.push(x);
        for(int i=2; i<=n; i++){
            scanf("%d", &x);
            if(x<q1.top()) q1.push(x);
            else q2.push(x);
            if(q1.size()>q2.size()+1){
                q2.push(q1.top());
                q1.pop();
            }
            if(q2.size()>q1.size()+1){
                q1.push(q2.top());
                q2.pop();
            }
            if(i%2==1){
                if(q1.size()>q2.size()){
                    printf("%d ", q1.top());
                }
                else{
                    printf("%d ", q2.top());
                }
            }
            if(i%20==0) printf("\n");
        }
        printf("\n");
    }

    return 0;
}
全部评论

相关推荐

头像
昨天 20:19
已编辑
门头沟学院 人工智能
本文略长,献给身处双非、学院本科的低年级依旧陷入迷茫的同学,一个参考。夹杂强烈主观因素,若观点不同,仅当笑料。近日,工作之余的午休时间给母校的学弟学妹进行了宣讲,同时也接受了牛客的访谈,不约而同的触发了两个关键词考研,就业。现象今年和去年,认识的学弟学妹,来自知某、抖某、牛客等系列的学弟学妹,这次宣讲,约有20个学弟学妹来加了我的联系方式,向我取经,聊聊未来,聊聊想法。我这里简单概括一下。1.现在很迷茫,大方向摇摆就业还是考研,但是倾向考研。小方向摇摆竞赛和项目,不知道怎么去做,不知道怎么开始。2.考研的直接目的绝大多数都是为了(混)学历,根本目的就是提高就业竞争力。3.我把他们都拉了个群,在...
牛客85294058...:“私聊能够滔滔不绝,而拉了一个小群之后就完全一声不吭”个人观点这跟从小到大“不要浪费大家时间”的社会环境有关:个人化的提问,如果你上学时有留心、或者参加QA环节多,会注意到这种做法经常是被人骂的。要营造让大家开口的氛围和做出欢迎讨论的议题设置还是比较难的,期待方法探索。
投递大连飞创信息技术有限公司等公司10个岗位
点赞 评论 收藏
分享
迷茫的大四🐶:看来已经准备换人了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务