题目要求每次输出中间的那个数,如果数据很大肯定扛不住;

所以用两个优先队列来维护;

这样的话中间的那个数反正会在两个队列的任何一个的头部;

时间复杂度肯定比较小;

代码:

 #include <cstdio>
#include <queue>
using namespace std;
int l1,l2;
priority_queue<int> q1;
priority_queue<int, vector<int>, greater<int> > q2;
void add(int x)
{
q2.push(x);
l2++;
if(!q1.empty() && !q2.empty())
{
while(q1.top()>q2.top())
{
x=q1.top();
q1.pop();
q1.push(q2.top());
q2.pop();
q2.push(x);
}
}
if(q1.size()<q2.size())
{
x=q2.top();
q1.push(x);
q2.pop();
l1++;
l2--;
}
}
int get()
{
int ret;
if(l1>l2)
{
l1--;
ret=q1.top();
q1.pop();
}
else
{
l2--;
ret=q2.top();
q2.pop();
}
return ret;
} int main()
{
char str[];
int x;
while(scanf("%s",str)!=EOF)
{
if(str[]=='#')
printf("%d\n",get());
else
{
sscanf(str,"%d",&x);
add(x);
}
}
return ;
}

NCPC 2012 Cookie Selection的更多相关文章

  1. BNUOJ 26475 Cookie Selection

    LINK:BNUOJ 26475 Cookie Selection 题意: 你在不停的输入数字a1,a2,a3,......,ak,当你输入#时,就把已输入数字中的第k/2+1删除,然后剩下的数字又组 ...

  2. BNUOJ-26475 Cookie Selection 堆,线段树等

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26475 题意:每次输入一个操作,如果是数字,那么放入一个容器中,如果是#号,取出当前容器中 ...

  3. NCPC 2012 Bread Sorting

    逆序对数的应用: 逆序对数的写法有,二分,树状数组,分治: 学习一下: 树状数组版: 代码: #include<cstdio> #include<cstring> #inclu ...

  4. NCPC 2012 Galactic Warlords

    湖南大学的oj上有这套比赛: 这题是个简单的计算几何,首先去掉重复的边,然后判断是否全部平行: 代码: #include<cstdio> #define maxn 105 using na ...

  5. cookie (储存在用户本地终端上的数据)

    Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密).定义于 RFC2109 和 2965 中的都已废弃 ...

  6. 细说Cookie

    阅读目录 开始 Cookie 概述 Cookie的写.读过程 使用Cookie保存复杂对象 Js中读写Cookie Cookie在Session中的应用 Cookie在身份验证中的应用 Cookie的 ...

  7. Symantec Backup Exec 2012 Agent For Linux安装

    Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec ...

  8. web也是区分前端与后端的,session\cookie辨析

    <1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...

  9. Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection

    网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型 ...

随机推荐

  1. Winedt10 添加自定义宏

    Winedt10 添加自定义功能,并在toolbar上添加快捷命令 功能描述: 用宏实现latex+bib参考文献的一键编译. Remark: The toolbar is the most visi ...

  2. Ganymed SSH-2 for Java

    Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...

  3. Atom编辑器入门到精通(四) Atom使用进阶

    在本节中将介绍Atom提供的更高级的使用技巧,通过这些技巧将会进一步提高你的代码编写效率 代码片段(Snippets) Snippets是一种在代码中快捷插入代码块的方式,下面是维基百科中对Snipp ...

  4. js事件模型

    连接在此 http://www.cnblogs.com/zqstc/archive/2009/11/26/1611464.html

  5. silverlight圆球滚动

    经大神启发后,才知道设置几个变量尤其是bool类型的方向,之后就是简单的判断了. // 当用户导航到此页面时执行. protected override void OnNavigatedTo(Navi ...

  6. ECMAScript 6 中的一些新特性

    1.箭头函数,直接写出来v =>看不出来什么,但是跟传统写法一比较,很直观地就能看出v =>是代替了匿名函数 function(v)的写法,{}与逻辑照旧,但是要注意,=与>之间不能 ...

  7. Javascript 数组自定义排序,并获取排序后的保存原索引的同序数组(堆排序实现)

    比如数组A: [ 0: 5, 1: 2, 2: 4, 3: 3, 4: 1 ] 排序后的结果为:[1, 2, 3, 4, 5],但是有时候会有需求想要保留排序前的位置到一个同位数组里,如前例则为:[4 ...

  8. Ambiguous handler methods mapped for HTTP path

    一.问题:映射重复导致的错误 java代码如下: @RequestMapping(value = "/info/{remove}/{id}", method = RequestMe ...

  9. C语言——N个人围成一圈报数淘汰问题

    <一>问题描述: 有17个人围成一圈(编号为0-16),从第 0号的人开始从 1报数, 凡报到 3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止. 问此人原来的位置是多少号? ...

  10. 10.21_Nutz批量插入顺序,POI,wiki持续关注,POI,SSH,数据库优先

    (1)Nutz,dao的批量插入会关注顺序吗? http://www.douban.com/group/topic/64322582/ (2)工作需要优先!!!  POI,SSH,数据库管理及plsq ...