菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
500
0

动态中位数

原创
05/13 14:22
阅读数 47742

关于对顶堆:

很水的一个东西。直接放模板吧。

 1 struct DQ {
 2     priority_queue<int, vector<int>, greater<int> >up;
 3     priority_queue<int>down;
 4     void clear() {
 5         while(!up.empty()) {
 6             up.pop();
 7         }
 8         while(!down.empty()) {
 9             down.pop();
10         }
11         return;
12     }
13     void insert(int a) {
14         if(down.empty()) {
15             down.push(a);
16             return;
17         }
18         if(a > down.top()) {
19             up.push(a);
20         }
21         else {
22             down.push(a);
23         }
24         if(up.size() + 1 < down.size()) {
25             up.push(down.top());
26             down.pop();
27         }
28         else if(up.size() > down.size()) {
29             down.push(up.top());
30             up.pop();
31         }
32         return;
33     }
34     int getmid() {
35         if(up.size() < down.size()) {
36             return down.top();
37         }
38         return (up.top() + down.top()) >> 1;
39     }
40 }dq;
depriorityqueue结构体模板

相关题目(水题):

poj 3784

洛谷 P1168

当然此问题splay可过%%%

发表评论

0/200
500 点赞
0 评论
收藏