三种操作

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. 常用的SQL 语句

    一.简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指定列 SQL>SELECT empmo, ...

  2. USB Type-C 接口有什么优点?

    USB Type-C 接口有什么优点? 提到USB Type-C接口(以下简称为USB-C),大家第一个能想到的是USB-C接口能正反插,用起来很舒服.了解更多的可能还支持USB-C接口速度更快, 达 ...

  3. Stunnel使用2

    1.首先测试一下stunnel.exe,是否能正常运行,正常的话,不会报错,在桌面右下角位置显示. 2.第一步完成后,打开stunnel.conf,对stunnel进行配置,需要修改一下几项:(mys ...

  4. java 22 - 10 多线程之两种代码实现方式的比较与区别

  5. net面试 ASP.NET页面传值的各种方法和分析 (copy)

    Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题 ...

  6. 【深入ASP.NET原理系列】--ASP.NET页面生命周期

    前言 ASP.NET页面运行时候,页面将经历一个生命周期,在生命周期中将执行一系列的处理步骤.包括初始化.实例化控件.还原和维护状态.运行时间处理程序代码以及进行呈现.熟悉页面生命周期非常重要,这样我 ...

  7. sublime和python--path

    配置Sublime Text 2 的Python运行环境 (2013-09-11 11:36:17) 转载▼ 标签: python 分类: 科技相关     Sublime Text 2作为一款轻量级 ...

  8. GridView EmptyDataTemplate 动态显示

    以下语句加在GridView.DataBind()之后: Table GridViewTable = ((Table)gvGridView.Controls[]); if (!isSearch) (( ...

  9. SQL server 专业词汇

    sql组成:DDL:数据库模式定义语言,关键字:createDML:数据操纵语言,关键字:Insert.delete.updateDCL:数据库控制语言 ,关键字:grant.removeDQL:数据 ...

  10. BZOJ 1066 【SCOI2007】 蜥蜴

    Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外. 每行每列中相邻石柱的距离为$1$,蜥蜴的跳跃距离是d,即蜥蜴可以跳 ...