poj 1442 Black Boxes(treap)求第k大数的treap模板
来源:互联网 发布:淘宝手机降价通知 编辑:程序博客网 时间:2024/06/08 13:11
依次加入n元素,给出m个询问 m<=n
第i个询问代表 前q[i]里面第i个小的数是多少
#include <cstdio>#include <cstring>#include <ctime>#include <iostream>#include <algorithm>#include <cstdlib>#include <cmath>#include <utility>#include <vector>#include <queue>#include <map>#include <set>#define max(x,y) ((x)>(y)?(x):(y))#define min(x,y) ((x)>(y)?(y):(x))#define INF 0x3f3f3f3f#define MAXN 30005using namespace std;int cnt=1,rt=0;int n,m,a[MAXN],u[MAXN];struct Tree{ int key,size,pri,son[2]; void set(int x,int y,int z) { key=x; pri=y; size=z; son[0]=son[1]=0; }}T[MAXN];void rotate(int p,int &x){ int y=T[x].son[!p]; T[x].size=T[x].size-T[y].size+T[T[y].son[p]].size; T[x].son[!p]=T[y].son[p]; T[y].size=T[y].size-T[T[y].son[p]].size+T[x].size; T[y].son[p]=x; x=y;}void ins(int key,int &x){ if(x==0) { T[x=cnt++].set(key,rand(),1); } else { T[x].size++; int p=key<T[x].key; ins(key,T[x].son[!p]); if(T[x].pri<T[T[x].son[!p]].pri) rotate(p,x); }}int find(int p,int &x){ if(p==T[T[x].son[0]].size+1) return T[x].key; if(p>T[T[x].son[0]].size+1) find(p-T[T[x].son[0]].size-1,T[x].son[1]); else find(p,T[x].son[0]);}int main(){ scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=1;i<=m;i++) { scanf("%d",&u[i]); for(int j=u[i-1];j<u[i];j++) ins(a[j],rt); printf("%d\n",find(i,rt) ); }}
0 0
- poj 1442 Black Boxes(treap)求第k大数的treap模板
- POJ 1442 Black Box treap求区间第k大
- POJ 1442 Black Box treap裸题 动态求整个序列的前k大数
- POJ 1442 Black Box(【Treap】求动态区间第k大)
- POJ 2761(Treap离线求区间第k大数)
- 【POJ】1442 Black Box 静态第k大,treap
- HDU 4006 求第k大数 treap
- POJ 1442Black Box【treap模板】
- POJ 1442 Black Box Treap 模板题
- POJ_P1442 Black Box(Treap模板题+动态第k小)
- POJ 1442 Black Box(treap树)
- 【POJ 1442】Black Box (treap树)
- POJ 2985 Treap平衡树(求第k大的元素)
- POJ 1442 Black Box 升序询问第k小 优先队列 / Treap
- POJ 1442 Black Box(Treap)
- POJ 1442 Black Box ( Treap )
- POJ 1442 Black Box(Treap)
- POJ 1442 Black Box [treap]
- 牛客网前端大挑战修改this指向
- VMWare装CentOS 7
- Android业务组件化之子模块SubModule的拆分以及它们之间的路由Router实现
- 翻转数组
- java 四舍五入
- poj 1442 Black Boxes(treap)求第k大数的treap模板
- 线段树+dfs HDU
- 转一波收藏吧
- platform_driver_probe与platform_driver_register
- android项目之小闹钟之准备篇
- 相关链接
- 基于Deep Learning的跟踪算法总结(二)
- Android状态栏微技巧,动态控制状态栏显示和隐藏
- Jdbc