设前缀和 Ai=∑j=1iaj、Bi=∑j=1ibj。
单次遍历,逐日更新前缀:在第 i 天先计算 di=max(0,ai−bi)。若 di>0,比较“包含当天”的前缀 Bi 与 Ai:
时间复杂度 O(n),空间 O(1)。用 64 位整型累计答案与前缀和。
在一段史诗般的冒险游戏中,米小游制定了 n 天的任务计划,其中第 i 天目标是收集 ai 个魔法晶体;然而,实际第 i 天他收集了 bi 个晶体。
为了平衡游戏难度,系统设定如下惩罚机制:
如果第 i 天 bi<ai ;且到第 i 天为止的累计实际收集总量不少于累计目标总量,则需要额外消耗 ai−bi 个能量点;
如果第 i 天 bi<ai ,且到第 i 天为止的累计实际收集总量小于累计目标总量,则需要额外消耗 2×(ai−bi) 个能量点;