题解 | #Running Median#

Running Median

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

一定要记得关流! AC代码+注释如下:

#include<bits/stdc++.h>
using namespace std;
//维持一个大根堆,一个小根堆,其中大根堆的顶要小于等于小根堆的顶

int main(){
    ios::sync_with_stdio(false);//关流
    cin.tie(0);cout.tie(0);
    int T;cin>>T;//T组样例
    while(T--){
        priority_queue<int>qup;    //默认大根堆
        priority_queue<int,vector<int>,greater<int>>qdown;//小根堆
        int n,m;cin>>n>>m;//输入
        cout<<n<<' '<<(m+1)/2<<'\n';//输出格式
        for(int i=1;i<=m;i++){
            int x;cin>>x;
            
            if(i%2){//如果为奇数入堆并且维护qdown的最小值大于qup的最大值
                qup.push(x);
                while(!qdown.empty()&&qdown.top()<qup.top()){
                    int t1=qdown.top(),t2=qup.top();
                    qdown.pop();qup.pop();
                    qdown.push(t2);qup.push(t1);
                }
                cout<<qup.top()<<' ';
                if((i+1)/2%10==0)cout<<'\n';//注意格式
            }
            else qdown.push(x);
        }
        if((m+1)/2%10)cout<<'\n';//注意格式
    }
}
全部评论

相关推荐

10-14 21:00
门头沟学院 Java
吃花椒的狸猫:这个人说的倒是实话,特别是小公司,一个实习生哪里来的那么多要求
点赞 评论 收藏
分享
09-19 13:59
门头沟学院 Java
用微笑面对困难:Trae一下,如果真成了,他用了直接发字节起诉代码版权,,这个代码不商用是没问题的如果没成也是情理之中的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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