zoukankan      html  css  js  c++  java
  • 备战NOIP——模板复习15

    这里只有模板,并不作讲解,仅为路过的各位做一个参考以及用做自己复习的资料,转载注明出处。

    对顶堆

    (动态计算中位数)

    /*Copyright: Copyright (c) 2018
    *Created on 2018-11-04 
    *Author: 十甫
    *Version 1.0 
    *Title: 对顶堆
    *Time: ?? mins
    */
    
    // 题目来源:洛谷SP15376 RMID - Running Median
    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<vector>
    using namespace std;
    
    priority_queue <int> big; // 大根堆存小于中位数的数
    priority_queue <int, vector <int>, greater <int> > sma; // 小根堆存大于中位数的数
    
    inline void balance() {
        while(big.size() > sma.size()) {
            sma.push(big.top());
            big.pop();
        }
    	while(sma.size() > big.size()) {
            big.push(sma.top());
            sma.pop();
        }
        
    }
    
    int main() {
        int k;
        while(scanf("%d", &k) != EOF) {
            big.push(k);
            while(1) {
                scanf("%d", &k);
                if(k != -1 && k != 0) {
                    if(k > big.top()) sma.push(k);
                    else big.push(k);
                    balance();
                } else if(k == -1) {
                    printf("%d
    ", big.top());
                    big.pop();
                    balance();
                } else {
                    printf("
    ");
                    break;
                }
                //printf("%d %d
    ", sma.top(), big.top());
            }
            while(!sma.empty()) {
            	sma.pop();
            }
            while(!big.empty()) {
            	big.pop();
            }
        }
        return 0;
    }
    NOIP 2018 RP++
  • 相关阅读:
    创建错误日志到文件 kiddy
    简单js时钟 kiddy
    Jquery表单验证
    js 地址栏操作
    $().each和$.each的区别
    Ajax与JSON的一些总结
    分页存储过程
    CKeditor 配置使用
    ISAPI_rewrite中文手册
    js向上无缝滚动,网站公告效果
  • 原文地址:https://www.cnblogs.com/Black-S/p/9930709.html
Copyright © 2011-2022 走看看