[bzoj3224]普通平衡树
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[bzoj3224]普通平衡树相关的知识,希望对你有一定的参考价值。
这是一道很普通的题。。
最近花了很多时间来想要去干什么,感觉自己还是太拿衣服
做这道题是因为偶尔看到了lavender的blog和她的bzoj早期AC记录,就被题目深深地吸引到了,原因有二:
自己splay还不是很会,想练练手
这道题居然过了两千多人,应该比较经典
>_<然后就看着jiangshibiao大爷的blog写代码,平易近人 http://blog.csdn.net/jiangshibiao/article/details/26011791
还稍稍改进了其中操作3、4的地方,yeah#
int rank(int x,int v) { int f1=x;int ans=0; while(f1>0) { if(son[f1][1]==0)num[f1][1]=0; if(a[f1]<v)ans+=num[f1][1]+1; if(a[f1]>=v)f1=son[f1][1];else f1=son[f1][2]; } return ans+1; } int findx(int x,int k) { if(k==num[x][1]+1)return a[x]; if(k<=num[x][1])return findx(son[x][1],k); else return findx(son[x][2],k-num[x][1]-1); }
然后没有发现太多的bug,但还是改了一个晚上,信息课的时候终于改出来了,MARK一下
insert(root,x),splay(node);//splay一定要放到主程序里写啊,否则错得太傻啦
此题数据详情请见 http://pan.baidu.com/s/1jHMJwO2
以上是关于[bzoj3224]普通平衡树的主要内容,如果未能解决你的问题,请参考以下文章
bzoj3224: Tyvj 1728 普通平衡树(spaly)