OI记忆口诀
splay_rotate:
inline void rotate(splay_node *x){
splay_node *y,*z;int d1,d2;
d1=get_parent(x,y);//三个结点扔过来同时统计d值
d2=get_parent(y,z);
if(y->ch[d1]=x->ch[d1^]) y->ch[d1]->fa=y;//y正x反y正爹
y->fa=x;x->fa=z;x->ch[d1^]=y;//yx,xz,x反y
if(d2!=-) z->ch[d2]=x;//d2非根z正x
y->update();//别忘y要update
return;
}
y正x反y正爹,yx、xz、x反y,d2非根z正x,别忘y要update。
splay_splay:
inline splay_node * splay(splay_node *x){
pushdown(x);//上来别忘pushdown
while(){//循环走起带你飞
splay_node *y,*z;
int d1=get_parent(x,y);//d1是根我们break
if(d1==-) break;
int d2=get_parent(y,z);//d2是根rotate
if(d2==-){rotate(x);break;}
if(d1==d2) rotate(y),rotate(x);//如果相等就yx
else rotate(x),rotate(x);//如果不等就xx
} x->update();return x;//最后一定update ,把x记得扔回去
}
d1是根我们break,d2是根rotate,如果相等就yx,如果不等就xx,上来别忘pushdown,最后一定update。
OI记忆口诀的更多相关文章
- 犯罪构成三层次记忆口诀 zt
犯罪构成三层次记忆口诀 2012-02-17 来源:为你辩护网 浏览次数:232 0 众所周知,犯罪构成“四要件”和犯罪构成“三层次”(“三阶层”)都是分析具体刑事案件的辅助性工具.犯罪构成四要件是指 ...
- java运算符优先级记忆口诀
尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...
- UML类图记忆口诀
UML类图在设计模式书籍中用的比较多,经常忘记,口诀挺重要的,比如我们从小到大,除了乘法口诀.元素周期表等口诀形式的知识,其它的知识都基本忘记了, 所以编写口诀如下 1.三级石 2.见关一 3.零足迹 ...
- C 语言运算符优先级(记忆口诀)
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形參表) . 成员选择(对象) 对象.成员名 -& ...
- activity动画主题使用注意事项
当我们不满足于系统默认的activity动画交互方式,我们可以通过在主题里面,指定activity动画样式来实现自定义交互效果. 在style里面定义样式 <!-- Base applicati ...
- JavaScript基础---语言基础(2)
运算符 1.一元运算符 2.算术运算符 3.关系运算符 4.逻辑运算符 5.*位运算符 6.赋值运算符 7.其他运算符 8.运算符优先级 ECMA-262描述了一组用于操作数据值的运算符,包括一元运算 ...
- Linux crond定时任务
第1章 Crond是什么? Crond是linux系统用来定期执行命令或指定程序任务的一种服务或软件.一般情况下,我们安装完Centos5/6linux操作系统之后,默认便会启动Crond任务调度服务 ...
- python运算符使用规律
#conding=utf-8 #优先级使用规律#1.一般情况下是左右结合print 4+6+5*6+6 #2.出现赋值的时候一般是右结合a=8+91print a #优先级记忆口诀'''函数寻址下标1 ...
- 常用的50条linux 命令
从今天起,咱开始正式学习python了,于是遍整理了50条linux的常用命令. 1 线上查询帮助命令 :man 遇到什么不会的命令可以 man +你想要查询的命令 (需要有网),因为是英文的所以 ...
随机推荐
- mybatis 与 ehcache 整合[转]
1.简介 MyBatis 是支持普通SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及结果集的检索. Ehcache 是现在最流行的纯 ...
- [PWA] 7. First Cache when installed
If you want your application works offline or lie-wifi. You need to use cache. API: Create Caches: c ...
- Creating a simple static file server with Rewrite--reference
Today, I’d like to take a quick moment to demonstrate how to make a simple file server using Rewrite ...
- ubuntu 查看端口被占用并处理
当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:查看所有的服务端口(ESTABLISHED netstat -a查看所有的服务端口, ...
- Python自动化之5种session类型
Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session Django默认支持Se ...
- 简单图片banner轮播
/**************[css]****************/ <style type="text/css"> *{margin:0px; ...
- SQL 里面的COALESCE函数
在SQL里面除了is null 还有这样一个还用的方法 COALESCE(值[, ...]) select COALESCE(NULL,NULL,'AAAA') -> 'AAAA' 意思是前面的 ...
- JS操作DOM元素属性和方法
Dom元素基本操作方法API,先记录下,方便以后使用. W3C DOM和JavaScript很容易混淆不清.DOM是面向HTML和XML文档的API,为文档提供了结构化表示,并定义了如何通过脚本来访 ...
- ERROR:the server has either erred or is incapable of performing the requested operation
openstack中,有时会经常出现这种错误,原因无二,一是安全组没有设置正确,二是openstack中网络配置会有些问题或者是相关的服务没有启动. 解决方法:1.安全组问题在nova.conf和ne ...
- Spring3.0提供的表达式语言spel
package com.zf.spel; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.D ...