交付:树状数组 + 布隆过滤器

交付:树状数组 + 布隆过滤器

这是这条路线的最终作品。把树状数组(lowbit / fen_build / fen_prefix / fen_range / fen_add)和布隆过滤器都写出来,然后一次验完五条: 前 3 个的和

阅读更多 →
第四步:再写一个布隆过滤器

第四步:再写一个布隆过滤器

写出 8 位的布隆过滤器(两个哈希:k % 8 和 (k * 3) % 8),加进 17、24、15。 把三个查询结果拼起来输出(用 / 隔开):查 15、查 13、查 10。 ⚠️ 中间那个 13

阅读更多 →
第三步:单点修改

第三步:单点修改

加上 fen_add:给第 i 个加 v,往上一路加 lowbit 更新。 给第 2 个加 10 之后,输出前 3 个的和。

阅读更多 →
第二步:前缀和与区间和

第二步:前缀和与区间和

加上 fen_prefix 和 fen_range。 把两个结果拼起来输出:前 3 个的和、第 2 到第 4 个的和,中间用 / 隔开。

阅读更多 →
第一步:lowbit 和建表

第一步:lowbit 和建表

最终作品第一步:写出 lowbit 和 fen_build。 建好之后输出树状数组第 4 格存的值——按规则它应该是前 4 个数的和。

阅读更多 →
这个数组的前缀和长什么样

这个数组的前缀和长什么样

运行下面这段程序: A = [17, 24, 15, 13, 23] s = 0 out = [] for x in A: s += x out.append(s) print(&qu

阅读更多 →
线段树和树状数组怎么选

线段树和树状数组怎么选

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

阅读更多 →
一个够用的树状数组至少要有哪几样

一个够用的树状数组至少要有哪几样

手写一个够用的树状数组,至少要有【0】。

阅读更多 →
一次给三条需求各选一个

一次给三条需求各选一个

同一个 choose。给下面三条需求各选一个结构,按顺序拼起来输出(用 / 隔开): 区间和还会改 海量去重可误判 磁盘上少读盘

阅读更多 →
碰到没见过的需求别崩

碰到没见过的需求别崩

同一个 choose:需求不在表里就返回 还得再想想,不能报错。 这次问一个表里没有的需求,输出结果。

阅读更多 →