树形结构
A_Pathfinder
这个作者很懒,什么都没留下…
展开
-
线段树模板(1)
本篇只对线段树的基本应用介绍:即整区间单次改变,区间求和,单点改变和区间改变一个道理,只把区间变成点。剩下的线段树知识点类似:区间求逆序对,区间多次改变(同时+,再*或者/或者-),区间(合并,交),区间过大在改变时对p取模等放在后面学习给出。若只是需要求区间和或者单点改变,树状数组是个好的选择,但是其他的就老老实实线段树了。线段树由于本身是专门用来处理区间问题的(包括RMQ、RSQ问题等...原创 2019-03-08 17:30:18 · 339 阅读 · 0 评论 -
树状数组 模板2 区间修改+单点查值
树状数组的区间修改是基于差分的基础之上:设数组a[]={1,6,8,5,10},那么差分数组b[]={1,5,2,-3,5}也就是说b[i]=a[i]-a[i-1];(a[0]=0;),那么a[i]=b[1]+....+b[i];假如区间[2,4]都加上2的话a数组变为a[]={1,8,10,7,10},b数组变为b={1,7,2,-3,3};发现了没有,b数组只有b[2]和b...原创 2019-03-18 15:57:26 · 221 阅读 · 0 评论 -
树状数组 模板3 求逆序对(非离散化)
离散化的树状数组:https://blog.csdn.net/A_Pathfinder/article/details/88042960这里就提一下和普通树状数组的区别,这里是用要查询的数当作下标,而普通树状数组是直接顺序下标放值,也就是说区别在于updata函数,普通的是updata(i,k);//这里的i就单纯是区间下标;而求逆序对的时候是updata(a[i],1)。我们每次都是在这个...原创 2019-03-18 16:08:25 · 248 阅读 · 0 评论 -
青出于蓝 dfs序+树状数组
题目来源:蓝桥杯2018模拟武当派一共有 n 人,门派内 n 人按照武功高低进行排名,武功最高的人排名第 1,次高的人排名第 2,... 武功最低的人排名第 n。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。我们知道,武当派人才辈出,连祖师爷的武功都只能排行到 p。也就是说徒弟的武功是可能超过师父的,所谓的青出于蓝胜于蓝。请你帮忙计算每个人的所有...原创 2019-03-18 19:57:46 · 257 阅读 · 0 评论 -
树状数组 模板1 单点修改和区间和
划重点:(先放一篇大佬的博客,我就直接划重点了:https://blog.csdn.net/ljd4305/article/details/10101535)0:树状数组时间修改值和区间和复杂度log(n);用于维护区间和计算区间和。1:a[]表示原数组,c[]表示树状数组,更新值和更新sum都根据二进制下标,数组下标最后从1开始 C[i] = A[i - 2^k + 1] ...原创 2019-02-27 21:35:12 · 252 阅读 · 0 评论 -
字典树
字典树,也称前缀树,是一种哈希树的变种。典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。主要思想是用时间来换空间。上面这棵Trie树包含的字符串集合是{in, inn, int, tea, ten, to}。每个节点的编号是我们为了描述方便加上去的。树中的每一条边上都标识有一...原创 2019-07-24 16:44:36 · 425 阅读 · 0 评论 -
划分树 求区间第k小问题
划分树是用来求区间第k小问题,区别于主席树,划分树的的内存消耗更小,主席树能够接树状数组或者线段树求动态区间第k小。划分树的原理基于线段树,在给定的大n区间内部求任意区间第k大,我们将n个数不断按照大小顺序并且与原序列对比,再把比较后的值按下表保存在左右子树里,比中间值小的在左子树,比中间值大的在右子树,同时记录每个层每个点i和i点之前进入左子树点的个数(重点,这方便后面的查询)。首先我们...原创 2019-07-26 13:02:26 · 341 阅读 · 0 评论