重儿子:子树包含节点最多的儿子就是重儿子,如图: 重链:连接重儿子的边 轻链:其它边 红色节点为重儿子,黑边为重链,蓝边为轻链 结论:可以证明从根节点到任意节点都不会经过$\log_2^n$条边 树剖:根据上一个结论,可以把树上问题转换为区间问题,每次处理一条链,最多处理$\log_2^n$条链 现 ...
分类:
其他好文 时间:
2018-02-26 23:16:05
阅读次数:
210
1,数组分拆: 给定数组,问有多少种拆分法,使得每一段和不为0。 (1e5) 2,数组区间: 求所有区间第k大的和。 (1e5,k<=50) 3,数组分拆II:给定数组,问有多少种拆法,使得每一段不出现重复的数字。(1e5) 4,有趣的子区间:给定a<=b求,问有多少对p,q,满足a<=p<=q<= ...
分类:
其他好文 时间:
2018-02-18 18:19:59
阅读次数:
213
日期类问题有一个统一的思想:把原区间问题统一到起点确定的区间问题上去。当要求两个特定日期之间的天数差时, 只要将它们与原点日期的天数差相减,便能得到这两个特定日期之间的天数差(绝对值) 下面的代码时求两个日期之间的间隔,和某日是星期几 ...
分类:
其他好文 时间:
2018-02-07 21:26:19
阅读次数:
179
Description 给一个长度为n的序列a。1≤a[i]≤n。m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r l+1)/2。如果存在,输出这个数,否则输出0。 Solution 用主席树处理即可, 由于按值建树,其实只要不断判断左右子树子节点数量大于(r l ...
分类:
其他好文 时间:
2018-02-04 18:08:08
阅读次数:
165
【题解】 1,先说说莫队算法。 莫队算法是用来离线处理区间问题的算法。非常易于理解和使用,且运用十分广泛。 假设我们现在已知区间[L,R]的答案,如果我们能以较低的时间复杂度扩展得到区间$[L-1,R],[L+1,R],[L,R-1],[L,R+1]$的答案,我们就可以使用莫队算法。通常可以接受的扩 ...
分类:
其他好文 时间:
2018-02-01 00:09:39
阅读次数:
150
【算法介绍】 莫队算法是用于离线处理处理区间问题的一类算法,非常易于理解和上手,应用面十分广泛,甚至还可以在树上进行操作。 当我们得到$[L,R]$的答案之后,如果能够以较低的复杂度扩展得到$[L-1,R],[L+1,R],[L,R-1],[L,R+1]$的答案,我们就可以使用莫队算法,通常这个扩展 ...
分类:
编程语言 时间:
2018-01-31 00:49:03
阅读次数:
221
原题链接:https://www.luogu.org/problemnew/show/P3391 splay处理区间问题板子,备用。 等待补充详细解释中。 ...
分类:
其他好文 时间:
2018-01-24 10:52:53
阅读次数:
166
问题 给出一个无重叠的按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 样例 插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。 插入区间[3, 4] 到 [[1,2], [5,9]], ...
分类:
其他好文 时间:
2018-01-01 23:37:28
阅读次数:
188
如题,已知一个数列,你需要进行下面两种操作: 1.将某一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3个整数,表示一个操 ...
分类:
其他好文 时间:
2017-12-26 22:47:44
阅读次数:
235
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定N个区间[Ai, Bi],请你找到包含元素最少的整数集合S,使得每个区间都至少有两个整数在S中。 例如给定三个区间[1, 3], [1, 4], ...
分类:
其他好文 时间:
2017-12-24 21:32:06
阅读次数:
162