使用的就是分块思想,之前写过总结,所以不再赘述;
代码如下:

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<stack>
#include<cstring>
using namespace std;
const int maxn=100010;
const int sqrN=316;
stack<int>st;
int block[sqrN];
int table[maxn];void peekMedian(int K){int sum=0;int idx=0;while(sum+block[idx]<K){sum+=block[idx++];}int num=idx*sqrN;while(sum+table[num]<K){sum+=table[num++];}printf("%d\n",num);
}void push(int x){st.push(x);block[x/sqrN]++;table[x]++;
}void pop(){int x=st.top();st.pop();block[x/sqrN]--;table[x]--;printf("%d\n",x);
}int main(){int x,query;memset(block,0,sizeof(block));memset(table,0,sizeof(table));char cmd[20];scanf("%d",&query);for(int i=0;i<query;i++){scanf("%s",cmd);if(strcmp(cmd,"Push")==0){scanf("%d",&x);push(x);}else if(strcmp(cmd,"Pop")==0){if(st.empty()==true){printf("Invalid\n");}else{pop();}}else{if(st.empty()==true){printf("Invalid\n");}else{int K=st.size();if(K%2==1)K=(K+1)/2;elseK=K/2;peekMedian(K);}}}system("pause");return 0;
}

PAT A1057 分块思想相关推荐

  1. hdu_5085_Counting problem(莫队分块思想)

    题目连接:hdu_5085_Counting problem 题意:给你一个计算公式,然后给你一个区间,问这个区间内满足条件的数有多少个 题解:由于这个公式比较特殊,具有可加性,我们考虑讲一个数分为两 ...

  2. UVA12003 Array Transformer(数组分块)

    题解:(分块思想) 1.把这个数组分成sqrt(n)sqrt(n)sqrt(n)个块,对于每个块对他进行从小到大排序. 2.查询L-R的所在块,第一个块和最后一个块进行暴力查找,中间的块二分查找,把所 ...

  3. codevs 2606 约数和(分块优化数学公式 )

    题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X).现在的问题是 ...

  4. 数列分块入门 (1 ~ 7)

    分块 6277. 数列分块入门 1 分块思想 我们把每m个元素分成一块,所以我们总共的块数就是n/mn / mn/m块,一般情况下我们取m=nm = \sqrt{n}m=n​.对于区间加操作,我们可以 ...

  5. 【知识总结】分块和值域分块

    分块思想 分块思想是对原数据适当的划分,并且在划分后的每一个块上预处理部分信息,从而优化算法. 大体思路就是: 对于给出的序列按照固定的块长 ( 一 般 为 n ) (一般为\sqrt n) (一般为 ...

  6. 分块与莫队(详详详解)

    以下内容主要借鉴oiwiki 分块思想 简介 分块是一种思想,而不是一种数据结构. 分块的基本思想是:通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复 ...

  7. 分块学习笔记(gu gu gu)

    在一次的luogu比赛后,问学长一道题的做法,学长说了句分块,那是第一次听说分块,那道题我的第一直觉是线段树可是我线段树不好写不出来,学长的一句分块让我有了一种用分块代替线段树的想法.我在网上搜博客的 ...

  8. 《算法笔记》——笔记

    算法笔记 胡凡 曾磊 主编 机械工业出版社 文章目录 算法笔记 C/C++快速入门 提醒 memset sscanf与sprintf 引用 浮点数的比较 圆周率 复杂度 黑盒测试 入门篇(1)--入门 ...

  9. ORB-SLAM2代码/流程详解

    ORB-SLAM2代码详解 文章目录 ORB-SLAM2代码详解 1. ORB-SLAM2代码详解01_ORB-SLAM2代码运行流程 1 运行官方Demo 1.2. 阅读代码之前你应该知道的事情 1 ...

最新文章

  1. 知乎如何运用OKR管理公司目标,达成绩效?
  2. Vue中动态设置页面title
  3. 如何使用Mockito模拟void方法
  4. Listview 的顶部动态广告位的实现
  5. 计算机屏幕怎么睡眠状态,解决办法:显示器进入睡眠状态时如何解决问题
  6. MySQL性能的五大配置参数(内存参数)
  7. javax.validation.ValidationException: Unable to find a default provider
  8. 探索ring0之内核概述
  9. 智能优化算法:蜻蜓优化算法-附代码
  10. vdbench的作用_基于SSD的iSCSI target的建立和Vdbench测试
  11. DNS - 什么是云解析DNS?
  12. base64 文件格式判断 图片类型判断 js
  13. 最新2018.1.1深度学习平台搭建 Win10+GPU+Tensorflow+keras+CUDA --2018.1.1
  14. c语言编程照抄能学好吗,C语言I作业12—学期总结
  15. api 微信内置浏览器js_【微网站开发】之微信内置浏览器API使用
  16. ACMjava杨辉三角形与二项式定理递推实现与组合实现
  17. 你知道吗?除了迅雷,这几款下载神器也不错!
  18. 国货美妆下半场:拼研发,开线下店与扎堆出海
  19. python面试常问
  20. 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案

热门文章

  1. tensorflow 遇到的细节问题
  2. javascript数组对象
  3. 白盒测试及其存在的一些问题
  4. DBGridEh导出Excel等格式文件
  5. 编码问题,java,当不知道自己的字符串编码是什么的时候,可以用如下程序进行尝试并自动转码utf-8,源码直接可用
  6. Python3列表、元组及之间的区别和转换
  7. Servlet 过滤器笔记
  8. centos7查看路由的命令_centos7系统设置***客户端及查看设置路由表router
  9. 页面滚动到某一位置吸顶_vue监听滚动事件某元素吸顶或固定位置显示详解
  10. 程序员1年经验包装成5年,转正时领导:试用期不想过了?