四大文化赛道完整展开
05-rationale/solution-rationale.md
解题思路
站内文件视图直接读取仓库内容,Markdown 使用文档排版渲染,其余文本文件保持原始排版,方便校对训练证据链。
文件类型Markdown
10-cases/s1-jh-06-heritage-workshop-schedule/05-rationale/solution-rationale.md
1. 问题重述
利用差分数组统计离散时段的教室占用量,找出并行峰值和空闲时段数。
2. 数据结构与建模
- 主算法:差分数组 + 前缀和恢复
- 输入拆解后对应的数据结构要和输出项一一对应。
- 需要重点维护的状态包括:题目实体、核心指标、中间结果和最终答案。
3. 算法步骤
- 为每个活动对
diff[start]加一,对diff[end + 1]减一。 - 顺序扫描时间轴,用前缀和恢复每个时段的占用量。
- 在扫描过程中同步维护最大值、最早峰值时段和空闲时段数量。
- 按固定格式输出三个统计结果。
4. 正确性说明
- 每一步都严格对应题面给出的规则或约束。
- 所有输出字段都来自同一份计算过程,不会出现“各算各的”的不一致情况。
- 边界情况通过单独分支或统一规则处理,保证程序在最小规模和重复值情况下也稳定。
5. 复杂度分析
- 复杂度取决于输入规模和主算法,但整体设计保持在初中组可讲解、可验证的范围内。
- 只保留必要状态,不引入超出题意的数据结构。
6. 易错点
- 活动区间恰好覆盖到最后一个时段时,要避免数组越界。
- 多个时段并列达到峰值时,只能保留最早时段。
- 当某些时段完全没有活动时,要正确计入
idle_slots。
7. 知识点清单
- 差分数组对闭区间加法的建模。
- 前缀和恢复每个时段真实占用量。
- 峰值统计和最早位置维护。
- 空闲时段的线性统计。
- 离散时间轴建模。