三条需求各选一个

同一个 choose。给「区间和还会改」「海量去重可误判」「磁盘上少读盘」三条需求各选一个结构,按顺序拼起来输出,用 / 隔开。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

够用的树状数组要有什么

第 1 步:给第 2 个元素加 10 第 2 步:从 i=2 出发 第 3 步:t[2] 加 10,i 加 2 变成 4 第 4 步:t[4] 加 10,i 变 8:超出 第 5 步:只改了两格就更新完了 17 41 15 69 23 i

开始练习 →

线段树和树状数组怎么选(C++)

同样能做区间和,线段树和树状数组的取舍是【0】。

开始练习 →

前缀和长什么样

运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #include <

开始练习 →

第一步 lowbit 和建表

最终作品第一步:写出 lowbit 和 fen_build。建好之后输出树状数组第 4 格存的值——按规则它应该是前 4 个数的和。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步前缀和与区间和

加上 fen_prefix 和 fen_range。把两个结果拼起来输出:前 3 个的和、第 2 到第 4 个的和,中间用 / 隔开。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第三步单点修改

加上 fen_add:给第 i 个加 v,往上一路加 lowbit 更新。给第 2 个加 10 之后,输出前 3 个的和。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第四步再写个布隆过滤器

写出 8 位的布隆过滤器(两个哈希:k % 8 和 (k * 3) % 8),加进 17、24、15。把三个查询结果拼起来输出,用 / 隔开:查 15、查 13、查 10。⚠️ 中间那个 13 从没加过,但结果会是「可能在」——那就是误判。

开始练习 →

交付树状数组加布隆

这是这条路线的最终作品。树状数组(lowbit / fen_build / fen_prefix / fen_range / fen_add)和布隆过滤器的框架都给好了,补全其中的关键函数,然后一次验完五条:前 3 个的和是 56、整段的和

开始练习 →

暴力区间求和为什么超时

10 万个数、12 万次操作,逐个相加的暴力区间求和过不了 1 秒限时,根本原因是【0】。

开始练习 →