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线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- Tuning 05 Sizing other SGA Structure
Redo Log Buffer Content The Oracle server processes copy redo entries from the user’s memory space t ...
- 使用AllocConsole()添加调试用控制台
AllocConsole 函数 为调用进程分配一个新的控制台. 使用步骤: 1. AllocConsole(); //分配控制台 2. HANDLE g_hOutput=GetStdHandle( ...
- 客户端-服务器端互动比较与原生实例(比较ajax,server-sent event,websocket/netsocket)
昨日学习了websocket的原生实例,觉得有必要把几种常见的客户端-服务器端无刷新交互形式列举比较: 一.Ajax:客户端决定何时主动向Server端发请求 如:无刷新评论.无刷新更换图片. 主要目 ...
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1)(被虐瞎)
http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20%28NOIP%E6%A8%A1%E6%8B%9F%E8%B ...
- QT国际化,中英文等多语言界面显示的方法
在网上学习了一下QT的国际化使用方法,最后将自己试成功的方法总结例如以下: 当中遇到的问题有:生成的ts文件里 代码中的中文 有的不显示,有的显示乱码. 步骤1: 生成.ts文件,在pro项目文件 ...
- TArray数组
TArray<int32> arr; arr.Init(,); ; index < arr.Num(); index++) { FString str = FString(" ...
- python3----生成器generator(yield)
# 列表推导式a = [i for i in range(100) if not(i % 2) and (i % 3)]print(a)# 字典推导式b = {i: i % 2 == 0 for i ...
- NATS源代码分析之auth目录
NATS是一个轻量的消息发布-订阅系统.NATS的核心是Event machine. 项目Server端源代码地址: github.com/nats-io/gnatsd 在auth目录中, multi ...
- [LintCode] 两个排序数组的中位数
class Solution { public: /** * @param A: An integer array. * @param B: An integer array. * @return: ...
- Openstack虚拟机创建流程
续上一篇Openstack安装配置 一,keystone交互认证阶段 1,发送用户名和密码给keystone认证获取token 2,带着token访问nova-api 3,nova-api使用toke ...