Link Cut Tree.

Slides:



Advertisements
Similar presentations
人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
Advertisements

消費者委員會 研究及商營手法事務主任 麥詠詩女士
消費者委員會 研究及商營手法事務主任 麥詠詩女士
1、一般地说,在生物的体细胞中, 和 都是成对存在的。
辨性别 A B. 辨性别 A B 第三节人类染色体与性别决定 昌邑市龙池初中 杨伟红 学习目标 1.理解人的染色体组成和传递规律。 2.解释人类性别决定的原理。 3.通过探究活动,解读数据了解生男生女的比例。
荃灣區旅游景點 成功組 全程制作人:游恒延.
这是一个数字的 乐园 这里埋藏着丰富的 宝藏 请跟我一起走进数学的 殿堂.
常年期十八主日 2015年8月2日 (兒童彌撒) 感 恩 祭 主 題 脫去舊人 感恩是基督徒生命的「基本調子」 我們要常常喜樂、事事感恩.
问卷调查的规范与技术 问卷调查的规范与技术.
总结-图 基础知识 基本方法 2017年3月6日 西南石油大学..
第7章 樹與二元樹 (Trees and Binary Trees)
一、平面点集 定义: x、y ---自变量,u ---因变量. 点集 E ---定义域, --- 值域.
七(7)中队读书节 韩茜、蒋霁制作.
寓理帅气 宁静致远 ——文综历史备考方略刍议和历史专题复习例谈 武汉市汉口铁中 明道华 中国历史课程网.
第三课 走向自立人生.
黃金比例.
Male reproductive system
管理学基本知识.
滁州学院首届微课程教学设计竞赛 课程名称:高等数学 主讲人:胡贝贝 数学与金融学院.
1.1.2 四 种 命 题.
色 弱 與 色 盲.
计算机软件技术基础 数据结构与算法(4).
引入树 线性表、堆栈和队列都是线性结构,它们的共同特点:一对一; 计算机对弈中的一个格局可能有多个后继格局,用线性结构难以描述。
第5章 树( Tree )和二叉树 5.1 树的基本概念 5.2 二叉树 5.3 遍历二叉树和线索二叉树 5.4 树和森林
第八章 查找.
第五章 树 东南大学计算机学院 方效林 本课件借鉴了清华大学殷人昆老师 和哈尔滨工业大学张岩老师的课件.
除夕團圓謝恩彌撒 2016年2月7日 (兒童彌撒) 感 恩 祭 主 題 感恩一切 感恩是基督徒生命的「基本調子」 我們要常常喜樂、事事感恩.
Father Hunger 撒母耳记下 13-18.
第8章 查找 数据结构(C++描述).
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
拾貳、 教育行政 一、教育行政的意義 教育行政,可視為國家對教育事務的管理 ,以增進教育效果。 教育行政,乃是一利用有限資源在教育參
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
92-90數學課程綱要比較 -- 不含數與計算 台北市立師範學院 數學資訊教育系副教授 李源順.
課程銜接 九年一貫暫行綱要( )  九年一貫課程綱要( ) 國立台南大學數學教育系 謝 堅.
第八章二元一次方程组 8.3实际问题与二元一次方程组.
第八章二元一次方程组 8.3实际问题与二元一次方程组 (第3课时).
2.4 二元一次方程组的应用(1).
正比與反比 大綱: 比與比值 比的運算性質 比例式 比例式的運算 蘇德宙 台灣數位學習科技股份有限公司.
Chap4 Tree.
Tree(樹) 什麼是「樹」? 「樹」的範例 「樹」的定義 「樹」的表示法.
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
第11章 查找 主要知识点 查找的基本概念 静态查找表 动态查找表 哈希表.
Course 4 搜尋 Search.
哈夫曼编码.
第12章 樹狀搜尋結構 (Search Trees)
第 七 章 樹狀結構 課程名稱:資料結構 授課老師:________ 2019/1/1.
数据结构与算法
樹狀結構 Tree Structure chapter 7 德明科技大學資訊科技系.
第7章 树和二叉树 7.1 树 7.2 二叉树 7.3 以结点类为基础的二叉树设计 7.4 二叉树类 7.5 二叉树的分步遍历
计算机问题求解 – 论题2-14 -B树 2018年6月10日.
樹 2 Michael Tsai 2013/3/26.
感謝同學們在加分題建議. 我會好好研讀+反省~
Tree & Binary Tree.
微生物的生命現象 2—4 微生物與人類的關係.
第7章 樹與二元樹(Trees and Binary Trees)
資料結構使用Java 第9章 樹(Tree).
Ch.9 查找 §9.1 基本概念 查找和排序是两个重要的运算
Disjoint Sets Michael Tsai 2013/05/14.
悼亡節 2014年11月2日 (兒童彌撒) 感 恩 祭 主 題 悼亡的啟示 感恩是基督徒生命的「基本調子」 我們要常常喜樂、事事感恩.
進階資料結構(2) Disjoint Sets
班級經營分享 主講人:吳姈娟 時間:104年3月4日.
第八章 服務部門成本分攤.
香港大學出版社電子書 操作手冊.
第10章 二元搜尋樹 (Binary Search Tree)
資料!你家住哪裏? --談指標 綠園.
104 四技二專甄選入學 簡章解析 輔導室 何乙娟.
用加減消去法解一元二次聯立方程式 台北縣立中山國中 第二團隊.
JAVA 程式設計與資料結構 第十七章 Tree.
第二节 偏 导 数 一、 偏导数概念及其计算 二 、高阶偏导数.
Presentation transcript:

Link Cut Tree

Link-Cut-Tree是什么? 一种数据结构! 能够维护一个带权的森林。 支持link(加边)、cut(删边)操作,动态的森林! 所有操作均摊复杂度O(log (N))! 在网络优化中的用途十分广泛!

Link-Cut-Tree的基本操作 Parent(v) 返回v的父亲节点。​ Root(v) 返回包含节点v的树的根。​ Link(v,w)将以v为根的树连接到节点w上。​ Cut(x,y)从树中删除边(x,y),分为两棵树。​ Evert(v) 将v设为根,并将v到Root(v)上所有边反向。​

Link-Cut Tree 如何对树进行操作?​ 并不直接对整棵树进行操作。​ 将树中的边分成实虚两种。​ 从每个顶点出发,最多只有1条实边连向它的子节点。​ 那么实边可以组成若干条路径,我们采用splay来维护这些路径。 剩下的边都是虚边。​ 有一种核心操作Access(v),来对虚、实边进行维护。

Splay维护路径? 首先我们知道splay可以维护序列。 例如: 在LCT中,BST的顺序按照到根的距离从小到大排列。 5 2 4 10 2 5 4 8 7 6 1 3 9 可以按照顺序组成一棵Binary Search Tree。 上面的序列组成的图(可能的一种): 这么一个BST,中序遍历就是原序列。 那么这个序列也可以看成是路径: 10->2->5->4->8->7->6->1->3->9 在LCT中,BST的顺序按照到根的距离从小到大排列。 3 10 7 9 8 6 1

Access(v)? Access(v)的作用就是:将Root到v这条路径上的边设置为实边。 先了解Access(v)的子过程Splice(p, Parent(p))

Splice(p, Parent(p)=v)

过程是这样的: 首先,要满足每个点向下连接的实边只有一条。 那么先切断v和q的实边连接 再连接好v和p 那么这一次切换就完成了 那么新的序列就是:r->v->p->…

Splice(p, parent) Splay(parent); RightChild(parent) = p; //RightChild是parent在splay中的右孩子,这里 保证是它的实孩子

Access(v)

Access(v) 不断调用Splice,直到根为止 for (x = v , y = NULL ; x ; x = Parent(x)) { Splice(y, x);//注意,第一次执行时,y=NULL,表示直接切除x向下的实边 y = x; }

基本操作的实现 Link(x,y): Evert(x); Splay(x); Parent(x)=y; Cut(x,y): if(parent(x) == y) //y is father swap(x, y); //now x is father Access(y); splay(x); tree[x].ch[1] = tree[y].fa = NULL; update(x); //更新x的信息,optional Evert(y); //optional Evert(v): Access(v); Splay(v); MarkReverse(v); Root(v): Access(v); Splay(v); return FindMin(v); Parent(v): Access(v); return FindPrevious(v); MarkReverse(v)表示将v所在的splay的顺序颠倒,详细实现这里略过。 FindMin(v)表示找到v所在的splay的最小值,即对应路径的第一个节点。

如何查询一条链? 假设目标链的起止点为(x,y) 那么: Query(x,y): Evert(x); Access(y); return node[y].ALL_information; ALL_information表示以y为根的splay tree的所有节点的information的和。