人生第一道splay不出所料是一道裸题,一道水题,一道2k代码都不到的题

 #include <cstdio>
int root,N=,n,p,q;
int fa[],c[][],size[],sp[];
void rot(int x)
{
int y=fa[x],k=(c[y][]==x);
size[y]=size[c[y][k]]+size[c[x][k]]+;size[x]=size[c[x][!k]]+size[y]+;
c[y][!k]=c[x][k];fa[c[y][!k]]=y;
fa[x]=fa[y];if(fa[y])c[fa[y]][c[fa[y]][]==y]=x;
c[x][k]=y;fa[y]=x;
}
void rots(int x,int g)
{
for(int y=fa[x];y!=g;rot(x),y=fa[x])
if(fa[y]!=g) rot((x==c[y][])==(y==c[fa[y]][])?y:x);
if(g==) root=x;
}
void insert(int x)
{
int y=root;
while(c[y][x>sp[y]]) y=c[y][x>sp[y]];
sp[++N]=x;c[N][]=c[N][]=;fa[N]=y;if(y)c[y][x>sp[y]]=N;
rots(N,);
}
void del(int x)
{
int y=root;
while(sp[y]!=x) y=c[y][x>sp[y]];
rots(y,);y=c[root][];
bool b;
if(!y) b=,y=c[root][];else b=;
while(c[y][b]) y=c[y][b];
rots(y,root);
c[y][b]=c[root][b];fa[c[root][b]]=y;fa[y]=;root=y;
size[y]=size[c[y][!b]]+size[c[y][b]];
}
int rank(int x)
{
int y=root,ans=;
if(x==){
printf("");
}
while(y)
if(x>sp[y])
ans+=size[c[y][]]+,y=c[y][];
else y=c[y][];
return ans+;
}
int num(int x)
{
int y=root;
while(x)
if(size[c[y][]]+<x)
x-=size[c[y][]]+,y=c[y][];
else if(size[c[y][]]+==x) return sp[y];
else y=c[y][];
return sp[y];
}
int pre(int x)
{
int ans;
for(int y=root;y;)
if(sp[y]<x)
ans=sp[y],y=c[y][];
else y=c[y][];
return ans;
}
int nex(int x)
{
int ans;
for(int y=root;y;)
if(sp[y]<=x)
y=c[y][];
else ans=sp[y],y=c[y][];
return ans;
}
int main()
{
freopen("1.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d%d",&p,&q);
if(p==) insert(q);
if(p==) del(q);
if(p==) printf("%d\n",rank(q));
if(p==) printf("%d\n",num(q));
if(p==) printf("%d\n",pre(q));
if(p==) printf("%d\n",nex(q));
}
return ;
}

貌似所有该犯的问题都犯了一遍了,,,感觉自己逻辑不够严谨啊

难道要背板???那么长感觉下不来啊

【填坑】bzoj3224 splay裸题的更多相关文章

  1. bzoj3223: Tyvj 1729 文艺平衡树 splay裸题

    splay区间翻转即可 /************************************************************** Problem: 3223 User: walf ...

  2. 【模板篇】splay(填坑)+模板题(普通平衡树)

    划着划着水一不小心NOIP还考的凑合了… 所以退役的打算要稍微搁置一下了… 要准备准备省选了…. 但是自己已经啥也不会了… 所以只能重新拾起来… 从splay开始吧… splay我以前扔了个板子来着, ...

  3. 动归专题QAQ(两天创造的刷题记录哟!✿✿ヽ(°▽°)ノ✿✿)(未填坑)

    1092 采药:由于没有限制开始时间和结束时间,01背包就好了 1095 开心的金明:01背包,无fuck说 1104 摆花:f[i][j]表示摆了i种花,第i种花摆了j种的方案数,乱转移0.0(感觉 ...

  4. HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. 【填坑向】bzoj2038小Z的袜子 莫队

    学莫队必做题,,,但是懒得写.今天来填个坑 莫队水题 莫队实际上就是按一个玄学顺序来离线计算询问,保证复杂度只会多一个n1/2,感觉是玄学(离线算法都很玄学) 易错点:要开long long(卡我半天 ...

  6. 【填坑向】spoj COT/bzoj2588 Count on a tree

    这题是学主席树的时候就想写的,,, 但是当时没写(懒) 现在来填坑 = =日常调半天lca(考虑以后背板) 主席树还是蛮好写的,但是代码出现重复,不太好,导致调试的时候心里没底(虽然事实证明主席树部分 ...

  7. LCT裸题泛做

    ①洞穴勘测 bzoj2049 题意:由若干个操作,每次加入/删除两点间的一条边,询问某两点是否连通.保证任意时刻图都是一个森林.(两点之间至多只有一条路径) 这就是个link+cut+find roo ...

  8. BZOJ 3680: 吊打XXX【模拟退火算法裸题学习,爬山算法学习】

    3680: 吊打XXX Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 3192  Solved: 1198[Sub ...

  9. #YCB#待做题目与填坑资料

    各种填坑资料(qwq) 主席树(by YL)戳 树套树(by ZSY)戳 不要问我这些题咋来的(查大佬的水表呗) 题目列表: [HDU5977]Garden of Eden [BZOJ2752][HA ...

随机推荐

  1. HTML5存储之 indexedDB

    IndexeDB是HTML5 重要的一部分,它是一种轻量级的NOSQL数据库.对创建具有丰富本地存储数据的数据密集型的离线HTML5 Web 应用程序很有用. IndexedDB是为了能够在客户端存储 ...

  2. $q -- AngularJS中的服务(理解)

      描述 译者注: 看到了一篇非常好的文章,如果你有兴趣,可以查看: Promises与Javascript异步编程 , 里面对Promises规范和使用情景,好处讲的非常好透彻,个人觉得简单易懂. ...

  3. ubuntu 15.10 安装swift开发环境 2016/4/17

    ubuntu 15.10 64位 下载地址 https://swift.org/download/#using-downloads 1.首先在ubuntu终端上 (ctl+alt+t打开) 下载cla ...

  4. python之路十四

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...

  5. C#夯实基础之多线程一:初识多线程

    一. 烧水沏茶问题       在小学四年级有一个烧水沏茶问题,可以作为我们今天讨论话题的引子: 客人来了,要烧一壶茶,但是烧水需要5分钟,洗水壶需要1分钟,洗茶杯需要2分钟,接水需要1分钟,找茶叶需 ...

  6. Python读写csv

    读取csv: http://blog.csdn.net/lixiang0522/article/details/7755059 读取Excel: http://www.cnblogs.com/lhj5 ...

  7. 阿里云直播PHP SDK如何使用

    前一篇聊了聊关于阿里云直播,如何进行进行调试,ok,那这篇我们就聊一聊关于阿里云直播的SDK(当然是关于PHP的),基于下面的原因: 1.直播云没有单独的SDK,直播部分的SDK是直接封装在CDN的相 ...

  8. JDBC连接数据库

    JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...

  9. css3 动画的有关属性

    transform transform: none|transform-functions; transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. ...

  10. October 28th Week 44th Friday 2016

    Life is not a problem to be solved, but a reality to be experienced. 人生不是待解决的难题,而是等着我们去体验的现实. Press ...