线段树
文章平均质量分 80
毒液哥
这个作者很懒,什么都没留下…
展开
-
CodeForces 589G Hiring
G. Hiring time limit per test 4 seconds memory limit per test 512 megabytes input standard input output standard output The head of human resources department decided to hire a ne原创 2015-10-21 18:42:15 · 616 阅读 · 0 评论 -
BZOJ3065 带插入区间K小值
因为要求支持插入,所以里层可以套上一个平衡树来维护对应位置的信息。 一般来说平衡树各项操作都是O(logN)的,但是由于外层要维护一个线段树,那么带旋转的平衡树复杂度就难以保证,因为每动一个节点就要在线段树中插入这个节点的子树大小个数的点。(点的深度和子树大小负相关) 带旋转的平衡树最坏情况每次都调整某个点到根的路径,而不带旋转的替罪羊树则是调整整棵子树。 所以带旋转的平衡树中深度越小的点越原创 2016-01-22 10:39:28 · 1188 阅读 · 0 评论 -
BZOJ3295 CQOI2011 动态逆序对
3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2263 Solved: 721 [Submit][Status][Discuss] Description 对于序列A,它的逆序对数定义为满足ij,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任原创 2015-12-27 13:58:36 · 899 阅读 · 0 评论 -
APIO2015 UOJ #110 - #112 题解
T1:给你一个序列A,问将A划分成K块(A 有个显然的想法是按二进制位依次考虑。那么假设当前在考虑第pos位,之前位的ans已经确定,我们可以用dp[[i][j]表示前i个元素分成j块能否满足条件,那么枚举断点,再判断一下就行。最后看这一位能否为0,就是找dp[N][i] (A 上述做法复杂度为O(N ^ 3 * log(Ans)),无法通过最后一个子任务。 但我们注意到最后一个子任务中原创 2016-04-27 20:14:26 · 555 阅读 · 0 评论 -
BZOJ4538 HNOI2016 网络
这道题解法很多,我知道三种:点分治;利用DFS序转化为平面内求最值问题;直接搞 这题考场上刚了很久,但是最终没有写出来,于是导致第一天雪崩,考试一定要冷静。 做的时候想到了前两种方法,因为第二种比较直观,于是选择了第二种。 但是发现这东西直接维护的话: 1.用3个树套在一起(堆可以用两个优先队列做出来,但是STL似乎很慢),很难写,加复杂度很吓人。 2.用KD-TREE,但是这东西我不熟原创 2016-04-19 17:29:15 · 757 阅读 · 0 评论 -
BZOJ4540 HNOI2016 序列
题目大意:给你一个长度为N的序列,每次询问给定一个区间,询问该区间内每个子区间的最小值的和。 很容易想到:对于一个元素可以求出Left和Right表示左端点在[Left, i],右端点在[i, Right]的区间最小值为这个元素(对于权值相同的可以任意指定相对大小) 题目朴素的做法,给你平面上N*N个点,每次询问以一个矩形内点的核,那么每个点实际上会将一个矩形内所有的点权值都改为该点点权。那么原创 2016-04-20 21:27:39 · 667 阅读 · 0 评论 -
可持久化数据结构
可持久化数据结构 杜逸闲 17300240036 概论 本文假设读者对数据结构有一定了解,对此概念不做赘述。 可持久化数据结构是一类数据结构的统称。若我们能在某一时刻访问一数据结构的任何历史版本,则称该数据结构为可持久化数据结构。 若一个数据结构是可持久化的,则可以通过修改该数据结构,在各操作时间复杂度不改变的同时,使其成为一个可持久化数据结构。 由定义可知,可持久化数据结构的任何一个历史版本都...原创 2019-01-14 01:55:13 · 686 阅读 · 0 评论