cdoj1339郭大侠与线上游戏
地址:http://acm.uestc.edu.cn/#/problem/show/1339
题目:
郭大侠与线上游戏
Time Limit: 6000/2000MS (Java/Others) Memory Limit: 125535/65535KB (Java/Others)

曾在网络游戏告白,但对方是假冒女生的人妖,而对此有阴影的郭大侠,坚持把游戏和现实分得清清楚楚。有一天竟被网络游戏中的女玩家告白了,虽然在游戏中接受了亚子的表白而结婚,但仍然不敢确信亚子就是真真正正的女生。终于有一天,卢西安所属四人公会的富豪会长决定举行线下聚会,结果发现四个人居然都是同一所高中的学生,甚至另外三人都是真真正正的可爱女孩子。
郭大侠还没完全接受这个事实时,他们发现亚子居然是重度的现实游戏混淆症患者,不仅在现实生活中用游戏角色名字“卢西安”叫人,还旁若无人黏住英骑身上。为了让亚子能够恢复正常,四人的游戏生活延续至学校。
……
今天,拯救亚子的计划是玩游戏!
这个游戏是这样的~
有一个像队列一样的东西,你可以push一个元素到这个队列的尾部,也可以pop掉这个队列的第一个元素
现在问题来了,这个队列中位数是多少呢?
中位数的定义为该队列升序排序后第k/2+1个的数的值,k为这个队列的大小
Input
第一行一个nn,表示有n个操作
接下来nn行为这三个操作之一:
1 x,向这个队列推入一个数x
2,弹出这个队列的第一个数
3,查询这个队列的中位数是多少
1<=n<=10000001<=n<=1000000,保证输入都是在int范围的整数。
保证队列中的每个数都不一样哦~
Output
对于每一个询问输出答案。
保证有解~
Sample input and output
| Sample Input | Sample Output |
|---|---|
6 |
2 |
思路:
侠与线上游戏
一开始用卿学姐的方法,,,然后搞半天写不出来,,写炸了。。。
无奈之下之后和b题一样自己想了。。
然后发现不论删除加入一个数,数列中位数的位置就在原中位数的附近,要么左移要么右移,要么不动,,所以这样就可以分类讨论下就好了。。。。
Ps:发现set真是好用,自动排好序,,
对于要加入删除的数用一个队列记录就好了,,,
恩,就这样就可以了
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <cstdlib>
#include <string> #define PI acos((double)-1)
#define E exp(double(1))
using namespace std;
set<int>p;
queue<int>q;
set<int>::iterator it,tit;
int main (void)
{
int t;
cin>>t;
while(t--)
{
int a,b;
scanf("%d",&a);
if(a==)
{
scanf("%d",&b);
p.insert(b);
q.push(b);
if(p.size()==)
{
it=p.begin();
continue;
}
if(b > (*it) && p.size()%==)
it++;
if (b < (*it) && p.size()%!=)
it--;
}
else if(a==)
{
tit=p.find(q.front());
if(*tit > *it && p.size()%==)
it--;
else if(*tit < *it && p.size()%!=)
it++;
else if(*tit==*it && p.size()%==)
it--;
else if(*tit==*it && p.size()%!=)
it++;
q.pop();
p.erase(tit);
}
else
{
if(p.size()==)
it=p.begin();
printf("%d\n",*it);
}
}
return ;
}
cdoj1339郭大侠与线上游戏的更多相关文章
- CDOJ1339 郭大侠与线上游戏(维护一个set中的中位数——平衡树/双set)
http://acm.uestc.edu.cn/#/problem/show/1339 题意:有三种操作,分别是. 1.向队列推入一个数x. 2.弹出这个队列的第一个数字 3.查询这个队列的中位数是多 ...
- Photon + Unity3D 线上游戏开发 学习笔记(四)
这一节 我们建立 photon Server 端的框架 一个最简单的Photon框架 就包括一个 Applocation 类 和 一个 peer 类,作用例如以下: * Application 类是 ...
- Photon + Unity3D 线上游戏开发 学习笔记(一)
大家好. 我也是学习Photon + unity3D 的新手 有什么说错的地方大家见谅哈. 我的开发环境是 unity3D 4.1.3 , Visual Studio 是2010 版本号的 p ...
- Photon + Unity3D 线上游戏开发 学习笔记(三)
好的,说了两篇了 如今我们正式的入手,揭开photon 的盖头哈 建立photon项目 第一步: 在Visual studio建立一个空的 待会为了測试也会在里面建立一个client 项目 (只 ...
- cdoj 1334 郭大侠与Rabi-Ribi Label:贪心+数据结构
郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 最近 ...
- cdoj 1334 郭大侠与Rabi-Ribi 贪心+数据结构
郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Su ...
- cdoj1334郭大侠与Rabi-Ribi
地址:http://acm.uestc.edu.cn/#/problem/show/1334 题目: 郭大侠与Rabi-Ribi Time Limit: 3000/1000MS (Java/Other ...
- 郭大侠与Rabi-Ribi (优先队列)
最近郭大侠迷上了玩Rabi-Ribi这个游戏. Rabi-Ribi呢,是一个打兔子的动作冒险游戏,萌萌哒的兔子在地上跑来跑去,好萌好萌呀~ 这个游戏是这样玩的,郭大侠作为一个主角,拿着一个小锤子,他的 ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- Respond.js – 让不懂爱的 IE6-8 支持 CSS3 Media Query
respond.min.js <script src="js/respond.min.js"></script> respond.min.js代码: /*! ...
- jfinal整合妹子UI初步完成
- 使用scp命令传输文件
1. 从远端复制文件到本地: sudo scp root@192.168.0.1:remote_path/remote_file . 2. 从本地复制文件到远端: sudo scp local_fil ...
- 【翻译自mos文章】使用asm来部署 超大数据库(10TB到PB 范围)--针对oracle 10G
使用asm来部署 超大数据库(10TB到PB 范围) 參考原文: Deployment of very large databases (10TB to PB range) with Automati ...
- 开发新手教程【三】Arduino开发工具
Arduino开发环境搭建 获取Arduino IDE开发工具 下载地址 :http://arduino.cc/en/Main/Software 能够下载release 版.Beta版和前期版本号 A ...
- Duilib教程-自动布局3-分隔条
先看一个常用的图,如下: 左边是导航栏,右边是信息区. 中间可以自由拉伸. XML如下: <?xml version="1.0" encoding="utf-8&q ...
- .Net framework 的浏览器定义文件
.net framework4.5.1之前的版本有一个非常愚蠢的设定, 它为每个浏览器设置了一个浏览器定义文件, 通过正则表达式来匹配浏览器的userAgent, 然后来定义一些功能集. 这种做法有一 ...
- AngularJS 讲解,二 模块
AngularJS允许我们使用angular.module()方法来声明模块,这个方法能够接受两个参数,第一个是模块的名称,第二个是依赖列表,也就是可以被注入到模块中的对象列表. angular.mo ...
- Poj3087
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8842 Accepted: 4077 Desc ...
- 170228、Linux操作系统安装ELK stack日志管理系统--(1)Logstash和Filebeat的安装与使用
安装测试环境:Ubuntu 16.04.2 LTS 前言 (1)ELK是Elasticsearch,Logstash,Kibana 开源软件的集合,对外是作为一个日志管理系统的开源方案.它可以从任何来 ...