窗口法和暴力法对一对
可变窗口版 min_len 已经给好。补全暴力版 brute_len(两层循环枚举所有子数组,取满足条件的最短),比较两者对 17 8 15 13 23 24 19 和目标 50 的结果。一样输出 结果一致,否则输出 结果不一致。 (本题用
前缀和与差分什么关系
第 1 步:差分数组先全是 0 第 2 步:[0,2] 加 5:只改两格 第 3 步:[1,3] 加 2:只改两格 第 4 步:从左往右累加:还原出来 0 1 2 3 4 5 差分 还原 0 0 0 0 0 0 5 -5 2 -2 5 7
前缀和与差分各擅长什么
前缀和和差分的分工是【0】。
差分怎么做区间加
要给区间 [l, r] 每个元素都加 v,在差分数组上的做法是【0】。
两次区间加之后的样子
五个位置全是 0,先给 [0,2] 每个加 5,再给 [1,3] 每个加 2。运行下面这段程序: #include <algorithm> #include <iostream> #include <map&g
差分省了多少次
做 500 次区间修改、每次区间长 1000:暴力是逐个加,差分只动两格。运行下面这段程序: #include <algorithm> #include <iostream> #include <map>
写一个区间加
补全 range_add:在差分数组上给 [l, r] 每个元素加 v。做两次区间加之后把还原结果用 / 连起来输出。 (本题用 g++ -std=c++17 -O0 编译。)
写一个还原
补全 restore:对差分数组求前缀和,还原出前 n 个位置的真实值。 (本题用 g++ -std=c++17 -O0 编译。)
差分和暴力结果对一对
差分版已经给好。补全暴力版 brute_apply:开一个长 n 的数组,给 [0,2] 逐个加 5、[1,3] 逐个加 2。两边结果一样输出 结果一致,否则输出 结果不一致。 (本题用 g++ -std=c++17 -O0 编译。)
窗口移动时状态怎么维护
第 1 步:窗口 abc:三种各 1 个 第 2 步:进 a 出 a 第 3 步:进 b 出 b 第 4 步:进 c 出 c 第 5 步:进 b 出 a 第 6 步:进 b 出 b 第 7 步:a 减到 0 了:键要删掉 a b c a b