倍增
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 · 115 阅读 · 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 · 309 阅读 · 0 评论