poj1442 Black Box
The Black Case 好啊!
首先,读题很艰难...
读完题,发现是求第k小的数,那么我们用splay水过对顶堆水过即可。
#include <cstdio>
#include <queue>
const int N = ;
// poj 1442 黑箱
struct DeHeap {
std::priority_queue<int> DOWN;
std::priority_queue<int, std::vector<int>, std::greater<int> > UP;
inline void clear() {
while(!UP.empty()) {
UP.pop();
}
while(!DOWN.empty()) {
DOWN.pop();
}
return;
}
inline void insert(int x) {
if(DOWN.empty()) {
UP.push(x);
}
else if(x >= DOWN.top()) {
UP.push(x);
}
else {
DOWN.push(x);
UP.push(DOWN.top());
DOWN.pop();
}
return;
}
inline int get() {
int x = UP.top();
DOWN.push(x);
UP.pop();
return x;
}
}dh; int add[N]; int main() {
int n, m, x, T = ;
while(T--) {
dh.clear();
scanf("%d%d", &n, &m);
for(int i = ; i <= n; i++) {
scanf("%d", &add[i]);
}
int k = ;
for(int i = ; i <= m; i++) {
scanf("%d", &x);
while(k <= x) {
dh.insert(add[k]);
k++;
}
printf("%d\n", dh.get());
}
printf("\n");
}
return ;
}
AC代码
poj1442 Black Box的更多相关文章
- poj-1442 Black Box(Treap)
题目链接: Black Box 题意: 给一个序列,m个询问,每个询问是求前x个数中的第i小是多少; 思路: Treap的入门题目;Treap能实现STL的set实现不了的功能,如名次树(rank t ...
- POJ-1442 Black Box,treap名次树!
Black Box 唉,一天几乎就只做了这道题,成就感颇低啊! 题意:有一系列插入查找操作,插入每次 ...
- POJ1442 Black Box 堆
用大根堆和小根堆分别存放前$i-1$大的元素前$k-i$小的元素. 将当前序列的元素压入最小堆,如果最小堆的最小数大于最大堆的最大数则进行交换,保证最大堆中的所有数小于最小堆. 因为$i$值每进行一次 ...
- 初识Treap
Treap,简单的来说就是Tree+Heap,是一颗平衡树,每个节点有两个信息:1.key:当前节点的关键字 :2.fix:当前节点优先级.key满足二叉排序数的性质,即左儿子都比当前节点小,右儿子都 ...
- 【POJ1442】【Treap】Black Box
Description Our Black Box represents a primitive database. It can save an integer array and has a sp ...
- Black Box POJ1442
Description Our Black Box represents a primitive database. It can save an integer array and has a sp ...
- 【poj1442】Black Box
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10890 Accepted: 4446 Description Our ...
- POJ1442:Black Box
浅谈堆:https://www.cnblogs.com/AKMer/p/10284629.html 题目传送门:http://poj.org/problem?id=1442 用对顶堆维护第\(k\)小 ...
- A - Black Box 优先队列
来源poj1442 Our Black Box represents a primitive database. It can save an integer array and has a spec ...
随机推荐
- opencv自带fast_math.hpp
cvRound cvFloor cvCeil cvIsNaN cvIsInf
- 【Java基础】for循环实现在控制台打印水仙花数
代码: /* * 需求:在控制台输出所有的”水仙花数” * * 分析: * 什么是水仙花数呢? * 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身. * 举例:153就是一个水仙花数. ...
- Oracle查询数据库编码
select userenv('language') from dual
- mysql 分库分表备份脚本
#!/bin/bash USER=root #用户 PASSWORD=123456 #密码 MYSQL_PATH=127.0.0.1 #地址 MYSQL_BIN=/bin/mysql MYSQL_DU ...
- linux 查看路由表
随便转载,保留出处:http://www.cnblogs.com/aaron-agu/ route –n
- Visual Studio 2017 and Swagger: Building and Documenting Web APIs
Swagger是一种与技术无关的标准,允许发现REST API,为任何软件提供了一种识别REST API功能的方法. 这比看起来更重要:这是一个改变游戏技术的方式,就像Web服务描述语言一样WSDL( ...
- luoguP4035
P4035 [JSOI2008]球形空间产生器 Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以 ...
- 下载模板、Excel导入、导出
下载模板 /// <summary> /// 下载模板 /// </summary> /// <returns></returns> public Ac ...
- kubernetes 安装手册(成功版)
管理组件采用staticPod或者daemonSet形式跑的,宿主机os能跑docker应该本篇教程能大多适用安装完成仅供学习和实验 本次安裝的版本: Kubernetes v1.10.0 (1.10 ...
- 【XSY2808】董先生的休闲方案 组合数学
题目描述 有\(n\)个方案,编号为\(1\ldots n\). 最开始你不知道每个方案的编号. 你要按顺序提出这些方案. 每一个时刻你要做以下事情: 如果你阅读过下一个方案,就提出这个方案. 否则随 ...