
树上乱搞
bestsort
这个作者很懒,什么都没留下…
展开
-
划分树 详解及模板
划分树的目的:求区间内第K大数。对于此类问题,暴力的话直接对区间进行sort,但是时间复杂度很高,如果q次查询的话嘛,时间复杂度O(q*n*log(n))为了降低时间复杂度,我们采取将数组构造成树的形式,这样,时间复杂度能降到log(n),但是空间复杂度为n*log(n).建树规则为:`小于等于中位数的放在左子树,大于中位数的放在右子树`,以1-9的随机数组为例,建树方式如下:原创 2018-08-08 11:28:25 · 582 阅读 · 0 评论 -
POJ1990 MooFest 树状数组 题解(附图)
MooFestTime Limit: 1000MS Memory Limit: 30000K Total Submissions:9207 Accepted: 4167 DescriptionEvery year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a soc...原创 2018-06-29 10:47:33 · 832 阅读 · 0 评论 -
线段树 数据结构详解与模板
转载请注明出处bestsort.cn线段树是一个查询和修改复杂度都为log(n)的数据结构。主要用于数组的单点修改&&单点查询&&区间求和&&区间修改.另外一个拥有类似功能的是树状数组,但是树状数组最常用的是单点修改&&区间求和.线段树完全涵盖树状数组所有功能具体区别和联系如下:1.两者在复杂度上同级, 但...原创 2018-06-26 16:08:08 · 1116 阅读 · 0 评论 -
可持续化线段树(主席树) 算法模板与图解
#include <cstdio>#include <cmath>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <queue>#de...原创 2019-03-21 16:42:29 · 559 阅读 · 0 评论