![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
倍增
qq_38232157
这个作者很懒,什么都没留下…
展开
-
洛谷 P3865 【模板】ST表(倍增, ST表)
倍增, ST表ST算法, 在 O(n*log(n)) 的时间预处理后,以 O(1) 的时间回答:数列 A 的区间 [l, r] 之间的最大值。本题要点:1、f[i][j] 表示从i开始,2^j 个数范围内,区间最大值2、把长度是 2^j 的区间,分为左右两半, 各长 2^(j-1), 2^j 的区间的最大值,就是两个区间的较大值。f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1])3、查询的时候,寻找到第一个 k, 使得原创 2020-09-21 12:59:31 · 101 阅读 · 0 评论 -
CH 0601 Genius ACM(进阶指南,倍增,归并)
算法竞赛进阶指南,40 页,倍增本题要点:0、 要求每两个数的差的平方和最大,需要配对,最大配最小,次大配次小,依次类推1、开2个数组:a[MaxN] :这个数组存原始数据,b[MaxN] :这个数组,存放每一段已经排好序的数据;c[MaxN] :归并排序用的临时数组;2、 倍增:寻找每一段满足 差的平方和 sum <= k 的最长区间范围,L 和 R, 每次增加一段 p,一开始 p = 1, 如果区间 [L, R + p]满足条件,那么 p *= 2, 否则 p /= 2;3 、原创 2020-05-30 17:16:04 · 262 阅读 · 0 评论