- 博客(10)
- 收藏
- 关注
原创 Z0600. [模板]最近公共祖先LCA
给出N,Q .N<=5*10^5代表一个树有N个点 ,树的根为1Q代表有Q个询问,询问A,B的最近公共祖先是哪一个.
2024-02-16 17:25:10
260
1
原创 Z0637. 静态区间
给你N个数字a[1],a[2]..........a[n]M次询问,每次给定一个区间[L,R]求a[L]......a[R]的最大公约数。
2024-02-16 12:29:57
255
1
原创 lca入门
在OI Kiki上是这么说的最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个(也就是离两个点最近的那个)。可以先让一个点一直往上跳到根节点,然后每次给跳到的点打上标记(初始点要打)最后从另一个点也往上跳,如果这个点有标记就输出每次让深度比较大的那个点向上跳,如果两个点相遇了,就输出先让深度较大的点一直跳到与另一个点深度相同,然后再共同向上跳,如果两个点重回,就输出两个跳跃法都需要先预处理出深度大家可以先看看我的这篇博
2024-02-12 15:25:32
625
1
原创 RMQ入门
在OI Wiki上是这么说的RMQ 是英文 Range Maximum/Minimum Query 的缩写,表示区间最大(最小)值。用来求区间内的最大(最小)值RMQ的实现有很多种算法,不过作者这里选择用ST表来解决我们发现max(x,x) = x 也就是说,区间最大值是一个具有「可重复贡献」性质的问题。即使用来求解的预处理区间有重叠部分,只要这些区间的并是所求的区间,最终计算出的答案就是正确的。如果手动模拟一下,可以发现我们能使用至多两个预处理过的区间来覆盖询问区间,也就是说询问时的时间复杂度可以被降至O
2024-02-11 16:48:01
305
1
原创 差分(入门)
差分可以看作前缀和的逆运算,不会可以来这里看看可以在O(1)的时间内的进行很多连续的数的加减操作我们现在有一个数组a,还有它的前缀和数组sum那么数组a就是它的前缀和数组sum的差分数组也就是说,一个数组的差分数组只要经过一次前缀和操作就成了原数组现在我们知道了一维差分数组和原数组之间的关系那我们就可以假定d数组是a数组的差分数组那么,问题来了,怎么构造d数组呢?多想亿想我们就能发现d[i] = a[i]-a[i-1]所以d数组就可以等于3.操作现在我们已经构建好了d数组,那我们怎么能让它进行大规
2024-02-05 20:06:16
344
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人