数据结构
文章平均质量分 91
fkjslee
无
展开
-
ACM_基础并查集
基础并查集: 用于高效的查找某两个元素是否属于同一个集合;一.普通的查找方式: 初始化所有的元素的父亲都是它自己: for(int i = 1; i <= n; i++) pa[i] = i; find函数, 每次向上找它的父亲, 直到找到它的根(根的特点是pa[i] == i): int find(int x){ return x == pa[x] ? x : find(pa[x]);原创 2015-09-29 18:56:10 · 1485 阅读 · 0 评论 -
ACM_线段树
线段树: 自我理解:把一段区间整体操作的数据结构整体思路: 如图: 假如单点更新 区间查询 现在有10个数 这10个数最开始是 1 2 3 4 5 6 7 8 9 10 查询某个区间的最大值 那么把这些区间按照如下更新 现在假如我们查询 2-7的最大值 (当然是在上图中是7) 我们就可以查询max[2, 2] = 2, max[3, 3] = 3, max[4, 5] = 5,原创 2015-10-15 12:59:31 · 530 阅读 · 0 评论 -
ACM_种类并查集
简介种类并查集: 和基础并查集有很大一部分相同, 多了一个判断2个元素是否属于同一个集团(不是集合, 集合是用来判断2个元素是否能够判断他们属不属于同一个集团:有点绕, 举个例子, 假如知道1和2在不同的集团, 3和4在不同集团,我们就不能判断1和3是否属于一个集团,而集团是用来判断他们是否在同一个集团假如:已知1和2在不同集团,2和3在不同集团, 那么我们就知道1和3在同一个集团);要懂原创 2015-09-29 19:52:34 · 2087 阅读 · 1 评论