百练+priority_queue应用+最大堆最小堆找出中位数
来源:互联网 发布:php 捕获异常 编辑:程序博客网 时间:2024/05/09 17:32
点击打开链接
//// main.cpp// test//// Created by 吴有堃 on 2017/9/11.// Copyright © 2017年 吴有堃. All rights reserved.//#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string>#include <cstring>#include <string.h>#include <math.h>#include <algorithm>#include <queue>#define LL long longusing namespace std;priority_queue<int>lq;/*struct cmp{ bool operator()(int a,int b){ return a>b; }}; */priority_queue<int,vector<int>, greater<int> >rq;//自定义优先级int T=0,N=0;void push_num(int num){ if(lq.empty())lq.push(num); else { if(num>=lq.top()){ rq.push(num); } else{ lq.push(num); } } //调整平衡两堆 int temp=0; while (lq.size()>rq.size()+1) {//奇偶判断,减号改成加号,时间3s到1.5s temp=lq.top();lq.pop(); rq.push(temp); } while(lq.size()<rq.size()){ //奇偶判断 temp=rq.top();rq.pop(); lq.push(temp); }}void pop_num(){ lq.pop(); //调整平衡两堆 int temp=0; while (lq.size()>rq.size()+1) {//奇偶判断,减号改成加号,就不超时间了。 temp=lq.top();lq.pop(); rq.push(temp); } while(lq.size()<rq.size()){ //奇偶判断 temp=rq.top();rq.pop(); lq.push(temp); }}int main(){ int i=0,num=0; char c; scanf("%d",&T); while (T--) { //每次清空堆 while(!lq.empty()) lq.pop(); while(!rq.empty()) rq.pop(); scanf("%d",&N); for(i=0;i<N;i++){ scanf(" %c",&c); //getchar(); //printf("%c\n",c); if(c=='I'){ //getchar(); scanf("%d",&num); push_num(num); } else if(c=='D'){ pop_num(); } else if(c=='Q'){ printf("%d\n",lq.top());///显现队列返回堆顶是用top() } } } return 0;}
阅读全文
0 0
- 百练+priority_queue应用+最大堆最小堆找出中位数
- C++ priority_queue 最大堆、最小堆
- 求中位数问题:最小堆,最大堆
- 最大堆和最小堆找中位数
- Algorithm_最大堆最小堆来求中位数
- 使用最大堆和最小堆来求中位数
- 使用 stl container priority_queue 实现最小堆和最大堆
- 利用最大堆和最小堆在线寻找中位数
- 用最大堆和最小堆实现中位数查找
- priority_queue 建立最小堆
- STL 最大堆、最小堆的应用
- 最大堆/最小堆
- 最小堆。最大堆。
- 最大堆/最小堆
- 最大堆/最小堆
- 最大堆/最小堆
- 最大堆、最小堆
- 最大堆/最小堆
- Linux下如何删除目录
- Visual Tracking via Reliable Memories
- Hexo建站记录(VPS+git+apache2)
- Java的字符类String、StringBuffer与StringBuilder异同对比分析
- Android学习笔记---关于获取极光IDgetRegistrationID为空的问题
- 百练+priority_queue应用+最大堆最小堆找出中位数
- 视图与委托
- python type() 判断数据类型
- python *
- jQuery事件冒泡
- The Multiresolution Toolkit: Progressive Access for Regular Gridded Data
- Netty 权威指南笔记(二):Java NIO 和 Netty 对比
- scikit-learn Adaboost类库使用小结
- Cesium中的几种坐标和相互转换