POJ 1442 Black Box (Treap)
来源:互联网 发布:got it get it gotcha 编辑:程序博客网 时间:2024/06/07 19:59
http://poj.org/problem?id=1442
题意:每次操作插入一个数或者GET一个数,每次GET出的是第K大的数,K在每次GET后都要加一。
题解:其实完全可以不用Treap做,为了训练一下就用Treap写了。
using namespace std;vector<int> v;struct Treapnode{ Treapnode *left,*right; int value,fix; Treapnode(int a) { this->value=a; this->fix=rand(); this->left=this->right=NULL; }};Treapnode *root;void Treapleft(Treapnode *&a){ Treapnode *b=a->right; a->right=b->left; b->left=a; a=b;}void Treapright(Treapnode *&a){ Treapnode *b=a->left; a->left=b->right; b->right=a; a=b;}void Treapprint(Treapnode *p){ if(p!=NULL) { if(p->left!=NULL) Treapprint(p->left); v.pb(p->value); if(p->right!=NULL) Treapprint(p->right); }}void Treapinsert(Treapnode *&p,int value){ if(p==NULL) { p=new Treapnode(value); } else { if(value<=p->value) { Treapinsert(p->left,value); if(p->left->fix<p->fix && p->left!=NULL) Treapright(p); } else { Treapinsert(p->right,value); if(p->right->fix<p->fix && p->right!=NULL) Treapleft(p); } }}int n,m,k;int in[300010],ou[300010];int main(){ cin>>n>>m; for(int i=1;i<=n;i++) { cin>>in[i]; } for(int i=1;i<=m;i++) { int x; cin>>x; ou[x]++; } for(int i=1;i<=n;i++) { Treapinsert(root,in[i]); if(ou[i]) { v.clear(); if(root!=NULL) Treapprint(root); for(int j=0;j<ou[i];j++) { cout<<v[k]<<endl; k++; } } } return 0;}
阅读全文
0 0
- POJ 1442 Black Box(Treap)
- POJ 1442 Black Box ( Treap )
- POJ 1442 Black Box(Treap)
- POJ 1442 Black Box [treap]
- POJ 1442 Black Box(treap)
- POJ 1442 Black Box [Treap]
- POJ 1442 Black Box Treap
- poj 1442 Black Box(Treap)
- POJ 1442 Black Box (Treap)
- [Treap] poj 1442 Black Box
- POJ 1442 Black Box(堆||treap)
- POJ 1442Black Box【treap模板】
- POJ 1442 Black Box(treap树)
- POJ 1442 Black Box Treap 模板题
- POJ-1442 Black Box,treap名次树!
- 【POJ 1442】Black Box (treap树)
- poj 1442 Black box (Treap过~)
- 【POJ】1442 Black Box 静态第k大,treap
- #bzoj1526#分梨子(乱搞)
- Python编程_Lesson015_类的基础用法
- 使用视图
- 百练_2718:晶晶赴约会
- 常用nodejs 模块集合。
- POJ 1442 Black Box (Treap)
- Epoll服务器
- 如何解决MySQL 5.7 Access denied for user 'root'@'localhost' (using password YES)问题?
- 对this的解读
- MySQL"十宗罪"
- 自定义Ant
- 怎样委婉的拒酒敬酒
- 设计模式——模板方法模式( Template Method Pattern)
- 端口号调研、URG和PSH、及TCP的计时器