三种操作

1 k  p  插入一个点

2 输出p最大对应的k 删除这个点

3  输出p最小对应的k 删除这个点

splay  维护一下 一不小心就会超时

#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<string.h> using namespace std;
#define inf 1000000000
#define MAXN 1000100 int pa[MAXN],ch[MAXN][],ki[MAXN],pi[MAXN];
int root,cnt; void Rotate(int x,int kind)
{
int y=pa[x];
int z=pa[y];
ch[y][!kind]=ch[x][kind];
pa[ch[x][kind]]=y;
if(pa[y])ch[pa[y]][ch[pa[y]][]==y]=x;
pa[x]=pa[y];
ch[x][kind]=y;
pa[y]=x;
}
void splay(int x,int goal)
{
while(pa[x]!=goal)
{
if(pa[pa[x]]==goal)
{
Rotate(x,ch[pa[x]][]==x);
}
else
{
int y=pa[x];
int kind=ch[pa[y]][]==y;
if(ch[y][kind]==x)
{
Rotate(x,!kind);
Rotate(x,kind);
}
else
{
Rotate(y,kind);
Rotate(x,kind);
}
}
}
if(goal==)root=x;
} void newnode(int &x,int k,int p,int father)
{
x=++cnt;
pa[x]=father;
ch[x][]=ch[x][]=;
pi[x]=p;
ki[x]=k;
}
void Insert(int k,int p)
{
int rt=root;
int r=root;
while(rt!=)
{
r=rt;
if(pi[rt]<p)rt=ch[rt][];
else rt=ch[rt][];
}
newnode(ch[r][pi[r]<p],k,p,r);
splay(ch[r][pi[r]<p],root);
ch[][]=ch[][]=;
} int f_max(int x)
{
while(ch[x][])
x=ch[x][];
if(x==root)
root=ch[x][];
ch[pa[x]][]=ch[x][];
pa[ch[x][]]=pa[x];
return ki[x];
}
int f_min(int x)
{
while(ch[x][])
x=ch[x][];
if(x==root)
root=ch[x][];
ch[pa[x]][]=ch[x][];
pa[ch[x][]]=pa[x];
return ki[x];
}
int main()
{
root=cnt=;
int n; while(scanf("%d",&n)!=EOF&&n)
{
if(n==)
{
int k,p;
scanf("%d%d",&k,&p);
Insert(k,p);
}
else if(n==)
printf("%d\n",f_max(root));
else
printf("%d\n",f_min(root));
} return ;
}

splay poj3481的更多相关文章

  1. 【POJ3481】【splay】Double Queue

    Description The new founded Balkan Investment Group Bank (BIG-Bank) opened a new office in Bucharest ...

  2. POJ-3481 Double Queue (splay)

    The new founded Balkan Investment Group Bank (BIG-Bank) opened a new office in Bucharest, equipped w ...

  3. poj3481(splay tree 入门题)

    平衡树都能做. // // main.cpp // splay // // Created by 陈加寿 on 16/3/25. // Copyright © 2016年 chenhuan001. A ...

  4. 三大平衡树(Treap + Splay + SBT)总结+模板[转]

    Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: #include <cstdio> #include <cstring> #i ...

  5. 平衡树初阶——AVL平衡二叉查找树+三大平衡树(Treap + Splay + SBT)模板【超详解】

    平衡树初阶——AVL平衡二叉查找树 一.什么是二叉树 1. 什么是树. 计算机科学里面的树本质是一个树状图.树首先是一个有向无环图,由根节点指向子结点.但是不严格的说,我们也研究无向树.所谓无向树就是 ...

  6. 三大平衡树(Treap + Splay + SBT)总结+模板[转]

    Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: #include <cstdio> #include <cstring> #i ...

  7. 三大平衡树(Treap + Splay + SBT)总结+模板

    Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: #include <cstdio> #include <cstring> #i ...

  8. BZOJ 1251: 序列终结者 [splay]

    1251: 序列终结者 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3778  Solved: 1583[Submit][Status][Discu ...

  9. [bzoj1269][AHOI2006文本编辑器editor] (splay模版题 or pb_ds [rope]大法)

    Description 这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器.你能帮助他吗?为了明确任务目标,可可对“文本编辑器”做了一个抽象的定义:   文本:由0个或 ...

随机推荐

  1. 06章 Struts2国际化

    1:什么是国际化? 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有的与语言,国家/地区和文化相关的元素.换言之,应用程序的功 ...

  2. SQL注入技术专题—由浅入深【精华聚合】

    作者:坏蛋链接:https://zhuanlan.zhihu.com/p/23569276来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 不管用什么语言编写的Web应用 ...

  3. 隐写-CTF中图片隐藏文件分离方法总结

    0x00 前言 在安全的大趋势下,信息安全越来越来受到国家和企业的重视,所以CTF比赛场次越来越多,而且比赛形式也不断的创新,题目也更加新颖有趣,对选手的综合信息安全能力有一个较好的考验,当然更好的是 ...

  4. 一行命令搞定node.js 版本升级

    from:http://www.16boke.com/article/detail/26 今天,又发现一个超级简单的升级node.js的方法.一行命令搞定,省去了重新编译安装的过程. node有一个模 ...

  5. django自带wsgi server vs 部署uwsgi+nginx后的性能对比

    一.下面先交代一下测试云主机 cpu: root@alexknight:/tmp/webbench-1.5# cat /proc/cpuinfo |grep model model : model n ...

  6. JS常用自定义方法

    1,JS生成随机数方法 getRandom(100),表示生成0-100的数 function getRandom(n){ return Math.floor(Math.random()*n+1) } ...

  7. EEG: electrode positions & Broadmann atlas

    Source: http://www.brainm.com/software/pubs/dg/BA_10-20_ROI_Talairach/nearesteeg.htm   Area LEFT RIG ...

  8. 1927: [Sdoi2010]星际竞速

    1927: [Sdoi2010]星际竞速 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 2040  Solved: 1257[Submit][Stat ...

  9. Codevs1026 逃跑的拉尔夫

    题目描述 Description 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且车上装有用于发射车子移动路线的装置. 那个装置太旧了,以至于只能发射关于那辆车的移动 ...

  10. usb驱动开发18之设备生命线

    现在已经使用GET_DESCRIPTOR请求取到了包含一个配置里所有相关描述符内容的一堆数据,这些数据是raw的,即原始的,所有数据不管是配置描述符.接口描述符还是端点描述符都挤在一起,所以得想办法将 ...