前缀和的定义

第 1 步:上:原数组;下:前缀和 第 2 步:下一格 = 上一格 + 当前数 第 3 步:要这一段的和 第 4 步:绿格减灰格:只要一次减法 3 1 4 1 5 9 0 3 4 8 9 14 23 前缀和 p[i] 等于【0】(p[0]

开始练习 →

用前缀和求区间和

用前缀和求 a[l..r](闭区间)的和:p[【0】] - p[l]。 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。

开始练习 →

差分是什么

差分数组是前缀和的【0】。 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。

开始练习 →

前缀和查询的复杂度

前缀和预处理后,单次区间和查询是【0】。 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。

开始练习 →

前缀和求区间和

运行下面这段程序: 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。 #include <algorithm> #include <iostream

开始练习 →

补全:前缀和递推

补全 prefix:p[i+1] = p[i] + a[i]。补全后输出 p[5]。 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。 (本题用 g++ -std=c

开始练习 →

补全:区间和公式

补全 range_sum:闭区间右端要用 r + 1。补全后输出 a[1..3] 的和。 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。 (本题用 g++ -std

开始练习 →

补全:走完每个下标

补全 prefix 的循环:要走完 a 的每一个下标。补全后输出 p[5]。 本节模型:prefix(a) 前缀和数组、range_sum(p, l, r) O(1) 求闭区间 a[l..r] 的和。 (本题用 g++ -std=c++17

开始练习 →

lowbit 怎么算

lowbit(x) 等于 x【0】。 本节模型:lowbit(x) = x & (-x)、bit_build(a) 建树状数组、bit_query(tree, i) 求前缀和 a[0..i-1]。

开始练习 →

树状数组的复杂度

第 1 步:树状数组的下标从 1 开始 第 2 步:第 1 格管 1 个数 第 3 步:第 2 格管 2 个数 第 4 步:第 4 格管 4 个数 第 5 步:第 6 格管 2 个数 第 6 步:第 8 格管 8 个数 1 2 3 4 5

开始练习 →