# 补充解法 贡献:出题人解法提供最早截止时间模拟;Codex(GPT-6)使用单调桶维护设备,完成实现与验证。 对固定功率,将每台仍需充电的设备挂到其下一次截止时间 $d$ 的桶中。桶用下标链表存储。每分钟从最早非空桶取出一台设备,充电后重新计算截止时间;若已足以撑完整场,则不再插入。 截止时间小于当前分钟时判定失败。全部桶为空时成功。每次充电只会让该设备的截止时间不减,因此最早非空桶的搜索指针永远无需后退。即使功率为零、设备再次进入同一个桶,分钟数仍然增加,算法会正常判定失败。 这就是[首选题解](solution.zh.md)所证明的最早截止时间调度。若还有未生成的后续任务,它的截止时间不小于同设备当前任务,故只维护每台设备的下一任务不会遗漏全局最早任务。交换论证保证贪心的充电顺序正确。若需要具体方案,记录每分钟弹出的设备即可。 初始化、扫描桶和充电总计每次判定 $O(n+m)$ .二分总时间 $O((n+m)(1+\log(H+1)))$ ,空间 $O(n+m)$ ;$H$ 为最大单台缺电量。最小堆模拟的判定为 $O(n+m\log(n+1))$ ,桶利用整数截止时间消去了堆操作,但需 $m$ 个桶。 [alternative.cpp](alternative.cpp) 在正式数据上得到正确结果,但最慢中位数约0.738秒,超过0.5秒时限,作为备用方案。截止时间统计作为首选;桶模拟的价值是直接产生执行顺序。