NCPC 2012 Cookie Selection
题目要求每次输出中间的那个数,如果数据很大肯定扛不住;
所以用两个优先队列来维护;
这样的话中间的那个数反正会在两个队列的任何一个的头部;
时间复杂度肯定比较小;
代码:
#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的更多相关文章
- BNUOJ 26475 Cookie Selection
LINK:BNUOJ 26475 Cookie Selection 题意: 你在不停的输入数字a1,a2,a3,......,ak,当你输入#时,就把已输入数字中的第k/2+1删除,然后剩下的数字又组 ...
- BNUOJ-26475 Cookie Selection 堆,线段树等
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26475 题意:每次输入一个操作,如果是数字,那么放入一个容器中,如果是#号,取出当前容器中 ...
- NCPC 2012 Bread Sorting
逆序对数的应用: 逆序对数的写法有,二分,树状数组,分治: 学习一下: 树状数组版: 代码: #include<cstdio> #include<cstring> #inclu ...
- NCPC 2012 Galactic Warlords
湖南大学的oj上有这套比赛: 这题是个简单的计算几何,首先去掉重复的边,然后判断是否全部平行: 代码: #include<cstdio> #define maxn 105 using na ...
- cookie (储存在用户本地终端上的数据)
Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密).定义于 RFC2109 和 2965 中的都已废弃 ...
- 细说Cookie
阅读目录 开始 Cookie 概述 Cookie的写.读过程 使用Cookie保存复杂对象 Js中读写Cookie Cookie在Session中的应用 Cookie在身份验证中的应用 Cookie的 ...
- Symantec Backup Exec 2012 Agent For Linux安装
Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec ...
- web也是区分前端与后端的,session\cookie辨析
<1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
随机推荐
- Android(java)学习笔记140:SpannableString类的使用
我们之前说过了我们想实现在TextView组件之中,可以显示URL.Email等特殊信息,这些信息点击可以实现跳转,真正意义上的超链接 要实现上面的需求就要SpannableString这个类. 因为 ...
- iOS之Sqlite和FMDB
在iOS 开发中,总会用到数据库的操作,来实现增.删.改.查. 尤其是查询. 一旦涉及到查询的操作,那就非得用数据库不可了. SQLite (http://www.sqlite.org/docs. ...
- desc跟asc
- DOS命令教学之详解批处理
批处理文件是由一个或一个以上的DOS命令及可执行命令组成的带有扩展名.BAT的文件.当用户以批处理文件名为命令时,DOS会自动依次执行文件中的命令.批处理文件的特点是一次建立可多次执行.下面,寻修网h ...
- HDU 3681 Prison Break(状态压缩dp + BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3681 前些天花时间看到的题目,但写出不来,弱弱的放弃了.没想到现在学弟居然写出这种代码来,大吃一惊附加 ...
- 查内网虚拟机映射的公网IP
1.访问ip138.com 2.curl ifconfig.me
- C++ 数组的地址问题学习随笔
二维数组额地址问题学习,本文学习内容参考:http://blog.csdn.net/wwdlk/article/details/6322439 #include<iostream> usi ...
- OpenGL中的深度、深度缓存、深度测试及保存成图片
1.深度 所谓深度,就是在openGL坐标系中,像素点Z坐标距离摄像机的距离.摄像机可能放在坐标系的任何位置,那么,就不能简单的说Z数值越大或越小,就是越靠近摄像机. 2.深度缓冲区 深度缓冲区原理就 ...
- (转)C++设计模式——观察者模式
转自:http://www.jellythink.com/archives/359 前言 之前做了一个性能测试的项目,就是需要对现在的产品进行性能测试,获得测试数据,然后书写测试报告,并提出合理化的改 ...
- 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug
9月1号,导出sql文件后,想到了awk,但很复杂.想到了用sed前期处理+python排序比较的区间查重法.编写加调试用了约3小时. 9月2号,编写C代码的sql语句过程中,发现排序可以交m ...