CDOJ1339 郭大侠与线上游戏(维护一个set中的中位数——平衡树/双set)
2017-04-13 20:02
204 查看
http://acm.uestc.edu.cn/#/problem/show/1339
题意:有三种操作,分别是、
1、向队列推入一个数x。
2、弹出这个队列的第一个数字
3、查询这个队列的中位数是多少。
中位数定义为该队列升序排序后第k/2+1个数
操作总数n<=1e6
分析:
当然最裸的想法就是直接平衡树
这里提另外一个巧妙的用set的做法
很显然问题的关键就是求中位数,如果不是求中位数,而是求最大值或最小值,那么很显然直接set,实际上中位数不就是“一半”数的最小值问题吗?
可以维护两个set:A,B
保证A中元素都小于等于B中元素,并且size(A)==size(B)或size(A)==size(B)-1
那么很显然,每次的答案就是Bset中的最小值
而维护操作,容易看出每次都是logn级别的
题意:有三种操作,分别是、
1、向队列推入一个数x。
2、弹出这个队列的第一个数字
3、查询这个队列的中位数是多少。
中位数定义为该队列升序排序后第k/2+1个数
操作总数n<=1e6
分析:
当然最裸的想法就是直接平衡树
这里提另外一个巧妙的用set的做法
很显然问题的关键就是求中位数,如果不是求中位数,而是求最大值或最小值,那么很显然直接set,实际上中位数不就是“一半”数的最小值问题吗?
可以维护两个set:A,B
保证A中元素都小于等于B中元素,并且size(A)==size(B)或size(A)==size(B)-1
那么很显然,每次的答案就是Bset中的最小值
而维护操作,容易看出每次都是logn级别的
相关文章推荐
- 【cdoj 1339】郭大侠与线上游戏 set
- 2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 CDOJ 1339 pb_ds黑科技
- cdoj1339郭大侠与线上游戏
- 【CDOJ 1339】郭大侠与线上游戏
- UESTC 1339 郭大侠与线上游戏 (STL插入删除/迭代器)
- 郭大侠与线上游戏(set)
- 2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 2个set
- UESTC 1339 郭大侠与线上游戏
- 随机产生一些数传递给一个函数,写程序找出并维护这些数的中位数
- bzoj3991: [SDOI2015]寻宝游戏 虚树 set维护dfs序
- 如何维护一个中位数
- 【Wannafly Daily】20170412 A 郭大侠与线上游戏
- 18.9 随机生成一些数字并传入某个插入方法。 编写一个程序,高效地插入过的元素的维护中位数。
- 郭大侠与线上游戏
- 随机产生一些数传递给一个函数,写程序找出并维护这些数的中位数。
- 一个线上运营着3000+人的游戏,因为我不小心一个DROP DATABASE,全没了。 怎么办??跟我HOLD住!!!
- ZOJ 3963 Heap Partition set维护。给一个序列,将其划分成尽量少的序列,使每一个序列满足按照顺序构造二叉树,父母的值<=孩子的值。
- CDOJ1339 郭大侠与线上游戏
- Hibernate 集合Set,一个hbm文件维护两张表!
- 一个有趣的游戏