[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普通平衡树——treap

bzoj3224: Tyvj 1728 普通平衡树(spaly)

bzoj 3224: Tyvj 1728 普通平衡树 && loj 104 普通平衡树 (splay树)

BZOJ3224: Tyvj 1728 普通平衡树

BZOJ 3224 普通平衡树

bzoj3224: Tyvj 1728 普通平衡树