splay旋转模板

  1. void rotate(int x) {
  2. int y=f[x],z=son(x);f[x]=f[y];
  3. if (f[x]) t[f[x]][son(y)]=x;
  4. t[y][z]=t[x][1-z];
  5. if (t[x][1-z]) f[t[x][1-z]]=y;
  6. f[y]=x;t[x][1-z]=y;
  7. }
  8. void splay(int x,int y) {
  9. while (f[x]!=y) {
  10. if (f[f[x]]!=y)
  11. if (son(f[x])==son(x)) rotate(f[x]);
  12. else rotate(x);
  13. rotate(x);
  14. }
  15. if (!y) root=x;
  16. }

splay旋转模板的更多相关文章

  1. BZOJ 3224: Tyvj 1728 普通平衡树 or 洛谷 P3369 【模板】普通平衡树-Splay树模板题

    3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 22483  Solved: 10130[Submit][S ...

  2. splay最终模板

    来自wjmzbmr的splay模板 #include<cstdio> #include<iostream> #include<algorithm> using na ...

  3. 平衡树(Splay)模板

    支持区间操作. 单点操作和区间操作分开使用,需要一起使用需要部分修改. 对应题目FJUTOJ2490 #include<cstdio> #include<cstring> #i ...

  4. 平衡树及笛卡尔树讲解(旋转treap,非旋转treap,splay,替罪羊树及可持久化)

    在刷了许多道平衡树的题之后,对平衡树有了较为深入的理解,在这里和大家分享一下,希望对大家学习平衡树能有帮助. 平衡树有好多种,比如treap,splay,红黑树,STL中的set.在这里只介绍几种常用 ...

  5. [洛谷P3391]【模板】文艺平衡树(Splay)

    题目大意:给定一个$1\sim n$的序列,每次翻转一个区间,输出最后的序列. 解题思路:Splay的区间翻转操作.我借此打了个Splay的模板(运用内存池,但有些功能不确定正确,例如单点插入). 大 ...

  6. 在平衡树的海洋中畅游(三)——Splay

    Preface 由于我怕学习了Splay之后不直接写blog第二天就忘了,所以强行加了一波优先级. 论谁是天下最秀平衡树,我Splay第一个不服.维护平衡只靠旋转. 一言不合转死你 由于平衡树我也介绍 ...

  7. 平衡树之伸展树(Splay Tree)题目整理

    目录 前言 练习1 BZOJ 3224 普通平衡树 练习2 BZOJ 3223 文艺平衡树 练习3 BZOJ 1588 [HNOI2002]营业额统计 练习4 BZOJ 1208 [HNOI2004] ...

  8. bzoj1014: [JSOI2008]火星人prefix(splay+hash+二分)

    题目大意:一个字符串三个操作:①求两个后缀的LCP②插入一个字符③修改一个字符. 前几天刚学了hash+二分求lcp,就看到这题. 原来splay还能这么用?!原来splay模板这么好写?我以前写的s ...

  9. 《数据结构》C++代码 Splay

    Splay,伸展树.之所以先写这个课内并不怎么常用的数据结构,是因为本人非常喜欢Splay,我觉得这是非常有美感且灵活的一种平衡树.在此先声明,我的伸展树写法来源于CLJ大牛,基础好的同学可以去他的博 ...

随机推荐

  1. conkey conf

    update_interval 1.0 # 更新时间间隔double_buffer yes # 双缓存,解决Conky闪烁问题use_xft yes # 自定义字体xftfont DejaVu San ...

  2. 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)

    参考来自: http://www.360doc.com/content/15/0728/15/12642656_487954693.shtml https://www.cnblogs.com/digd ...

  3. Office 如何复印身份证正反面到一张纸上

    先把身份证任意一面放到打印机扫描的一侧(不要放到正中间)   正面扫描复印好之后,身份证翻面,还放在原来的位置   纸张拿出来之后,把已经有图案的放在上面,空白的留在下面,接着扫描   最后效果如下 ...

  4. JMeter 三:搭建一个Web Test Plan

    参考:http://jmeter.apache.org/usermanual/build-web-test-plan.html 场景 5个用户并发测试百度搜索,有两个请求,一个请求搜索“你好”,一个请 ...

  5. Android获取前台进程的方法

    概述 项目中很多场景交互非常依赖于客户端的前后景状态以及其他一些辅助信息上传,譬如当前新闻在前台(看到的是新闻界面)播放时,语音开启音乐应用,此时我们希望能看到音乐界面,并且音乐在播;而在导航应用在前 ...

  6. 算法笔记_061:蓝桥杯练习 字串统计(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然 ...

  7. Linux LVM硬盘管理及LVM扩容【转】

    原文地址:http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html 一.LVM简介 LVM是 Logical Volume Manag ...

  8. 使用jq Deferred防止代码被回调函数分解分解的支离破碎

    //移动人物 function moveInterval(stopPosotion){ var dtd = $.Deferred(); // 生成Deferred对象 var yidong= wind ...

  9. python --闭包学习

    闭包概念: Closure:内部函数中对enclosing作用域的变量进行引用 enclosing作用域:函数内部与内嵌函之间 范例1: #coding:utf-8 def set_passline( ...

  10. Linux监控平台搭建

    Linux监控平台介绍 zabbix监控介绍 zabbix监控流程图 安装zabbix 准备两台主机: zabbix服务端:192.168.133.88 zabbix客户端:192.168.133.6 ...