多个效果层分别加入时,未必共用一个结束时间。每层保存自己的到期点,才能说明为什么稍早获得的一层已经消失,稍晚获得的另一层还在。
这一篇用一组公开的自定义数据拆开计算过程。可以先遮住结果,依照约定逐项填写自己的记录,再用文末的复核办法检查。案例关注的是规则边界和状态变化,并不替任何具体作品规定玩法。
本例到期时刻本身不再生效。每次先移除到期层,再尝试添加新层;达到层数上限时,新层整次忽略,已有层的结束时间不会被刷新。
处理当前时刻前先删除到期点小于或等于现在的层;还有空位才记录新层自己的结束点。
最多4层,层编号从0开始 加入时刻[3, 5, 11, 14, 15, 16, 18, 21, 22, 24] 对应持续时间[9, 6, 4, 8, 2, 2, 2, 8, 2, 4]
时刻3尝试添加第0层,持续9:接受;仍生效的“层号、到期点”为[[0, 12]]。
时刻5尝试添加第1层,持续6:接受;仍生效的“层号、到期点”为[[0, 12], [1, 11]]。
时刻11尝试添加第2层,持续4:接受;仍生效的“层号、到期点”为[[0, 12], [2, 15]]。
时刻14尝试添加第3层,持续8:接受;仍生效的“层号、到期点”为[[2, 15], [3, 22]]。
时刻15尝试添加第4层,持续2:接受;仍生效的“层号、到期点”为[[3, 22], [4, 17]]。
时刻16尝试添加第5层,持续2:接受;仍生效的“层号、到期点”为[[3, 22], [4, 17], [5, 18]]。
时刻18尝试添加第6层,持续2:接受;仍生效的“层号、到期点”为[[3, 22], [6, 20]]。
时刻21尝试添加第7层,持续8:接受;仍生效的“层号、到期点”为[[3, 22], [7, 29]]。
时刻22尝试添加第8层,持续2:接受;仍生效的“层号、到期点”为[[7, 29], [8, 24]]。
时刻24尝试添加第9层,持续4:接受;仍生效的“层号、到期点”为[[7, 29], [9, 28]]。
最后剩余层为[[7, 29], [9, 28]],层数2。
在任意观察时刻,留下的每一层都必须已经成功加入且到期点严格晚于现在。被上限拒绝的层不应出现在后续记录里,也不应延长其他层。
与“再次获得就刷新全部层的持续时间”相比,这种规则会让层数逐步减少。阅读说明时应确认究竟是哪一种;两种都能实现,但不能把一个算例的结果套到另一种规则上。
若实际观察与这个模型不同,先确认操作顺序、编号起点和边界是否包含,再检查是否漏记了前一步状态。每次只改变一个条件并保留原记录,通常比反复重做整段操作更容易找到差异。明确条件后,才适合把同一种方法应用到新的场景。
以便获取最新的优惠活动以及最新资讯!