CDOJ1339 郭大侠与线上游戏
2016-08-04 21:02
218 查看
附网址:http://acm.uestc.edu.cn/#/problem/show/1339
这道题,我觉得完全就是暴力打的吧,考虑了多种情况而已,大概这几种情况吧
1.N为奇数 插入/弹出的数在之前,那么中位数的pos--;反之,插入/弹出的数在之后,pos不变。
2.N为偶数 插入/弹出的数在之后,那么中位数的pos++;反之,插入/弹出的数在之后,pos不变;
3.弹出时,若弹出中位数,如果N为偶数,pos++;反之N为奇数,pos--;
就这么几个注意的吧
下方代码
//by liucxy
这道题,我觉得完全就是暴力打的吧,考虑了多种情况而已,大概这几种情况吧
1.N为奇数 插入/弹出的数在之前,那么中位数的pos--;反之,插入/弹出的数在之后,pos不变。
2.N为偶数 插入/弹出的数在之后,那么中位数的pos++;反之,插入/弹出的数在之后,pos不变;
3.弹出时,若弹出中位数,如果N为偶数,pos++;反之N为奇数,pos--;
就这么几个注意的吧
下方代码
//by liucxy
#include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> #include<queue> #include<set> using namespace std; queue<int>q; set<int>sum; int N; set<int>::iterator it,tit; int main() { scanf("%d",&N); while(N--) { int x; scanf("%d",&x); if (x==1) { int a; scanf("%d",&a); q.push(a); sum.insert(a); if (sum.size()==1) it=sum.begin(); if (*it < a && sum.size()%2==0) it++; if (*it > a && sum.size()%2!=0) it--; } if (x==2) { tit=sum.find(q.front());q.pop(); if (*it < *tit && sum.size()%2==0) it--; if (*it > *tit && sum.size()%2!=0) it++; if (*it == *tit && sum.size()%2==0) it--; if (*it == *tit && sum.size()%2!=0) it++; sum.erase(tit); } if (x==3) { if (sum.size()==1) it=sum.begin(); printf("%d\n",*it); } } return 0; }
相关文章推荐
- 【cdoj 1339】郭大侠与线上游戏 set
- 【CDOJ 1339】郭大侠与线上游戏
- 【Wannafly Daily】20170412 A 郭大侠与线上游戏
- 2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 2个set
- 郭大侠与线上游戏(set)
- cdoj1339郭大侠与线上游戏
- UESTC 1339 郭大侠与线上游戏 (STL插入删除/迭代器)
- 郭大侠与线上游戏
- UESTC 1339 郭大侠与线上游戏
- CDOJ1339 郭大侠与线上游戏(维护一个set中的中位数——平衡树/双set)
- 2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 CDOJ 1339 pb_ds黑科技
- 一次线上游戏卡死的解决历程
- Photon + Unity3D 线上游戏开发 学习笔记(三)
- 欢乐暑假线上编程比赛第一题:拆点游戏
- 玩家本周当心木马病毒 线上游戏窃取者变种
- 网络游戏线上活动的类型及特点(二)
- Photon + Unity3D 线上游戏开发 学习笔记(四)
- 第二届战神杯线上编程挑战赛月赛第二题:数字游戏(Java)
- Photon + Unity3D 线上游戏开发 学习笔记(四)
- 欢乐暑假线上编程比赛第一题:拆点游戏