随笔分类 -  数据结构

摘要:[TOC] 一、定义 给定一颗有根树,若节点z既是节点x的祖先,也是节点y的祖先,则称z是x,y的公共祖先。在x,y的祖先中,深度最大的一个节点称为x,y的最近公共祖先(Least Common Ancestors),记做LCA。 如图:LCA(5,7)=2;LCA(3,8)=1;LCA(6,10) 阅读全文
posted @ 2019-11-05 11:07 Wolfloral 阅读(777) 评论(0) 推荐(1)
摘要:##一、关于树链剖分 你的好盆友最近抛给你这样一个难题~~(无中生友)~~: " 一棵树由n个节点,每个节点都有一个权值w,现在想让你对这棵树完成下列操作: 1.把节点u的权值改为t 2.询问节点u到节点v的权值和 3.节点u到v的最大值 " 你看了看题目,发现这就是树链剖分的板子题... 好吧,那 阅读全文
posted @ 2019-11-04 16:47 Wolfloral 阅读(285) 评论(0) 推荐(0)
摘要:[TOC] 一、关于线段树 线段树(Segment tree)是一种可以完成区间操作的二叉树结构,其应用范围较树状数组更广。 线段树采用分治思想,每一个节点都代表一个区间,一棵完整的线段树除去最后一层深度为$O(logN)$,由于最底层非空,因此数组需要开到$4N$(静态线段树)。 如果线段树的内部 阅读全文
posted @ 2019-11-03 23:25 Wolfloral 阅读(283) 评论(0) 推荐(0)
摘要:[TOC] 一、关于并查集 1. 定义 并查集(Disjoint Set)是一种可以动态维护若干个不重叠的集合,并支持 合并 与 查询 两种操作的一种数据结构。 2. 基本操作 1. 合并(Union/Merge)[^note]: 合并两个集合。 2. 查询(Find/Get): 查询元素所属集合。 阅读全文
posted @ 2019-10-31 22:10 Wolfloral 阅读(12104) 评论(0) 推荐(12)
摘要:题目链接: "P1449 后缀表达式" 题目描述: 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3 (5–2)+7对应的后缀表达式为:3.5.2. 7.+@。’@’为表达式的结 阅读全文
posted @ 2019-10-22 22:50 Wolfloral 阅读(325) 评论(0) 推荐(0)