name: problem-summary description: >- 根据用户提供的题目描述与题解代码,按仓库既有风格汇总到指定 cpp 文件:上方题干注释、 中间可运行题解、下方总结与易错点。Use when user says "汇总这题"、"按这个格式整理题解"、 "我发题目和代码你帮我写成模板文件".
题目汇总(题干 + 题解 + 总结)
当用户提供“题目描述 + 题解代码”,并要求整理到某个 .cpp 文件时,按下面流程执行。
强制约束(严格执行)
- 必须先读本 SKILL,再编辑目标文件。
- 默认必须保留三段结构:题目注释、可运行代码、
【总结】。 - 若用户只要求替换代码实现,题面和总结默认保留;只有用户明确要求删除时才可移除。
- 必须保留用户原有注释语义,不得无故删除或改写关键注释。
- 若需优化实现,优先“注释保留旧实现 + 新增实现”,不要直接覆盖用户版本。
- 编辑后必须自检:结构完整、代码可编译(在用户未禁用时)、总结顺序合规。
目标格式(强制)
- 文件顶部:多行注释写完整题干(题目、输入格式、输出格式、样例、说明)。
- 中间:可直接编译运行的 C++ 题解代码。
- 文件底部:
【总结】,至少包含:- 核心算法模型
- 为什么正确(关键贪心/状态转移/不变量)
- 复杂度
- 易错点
总结写作顺序(新增强制)
【总结】 不能只复述本题流程,必须按下面顺序组织:
- 先写题型通用模板/万能思路(可迁移到同类题):
- 适用特征(看到什么条件就该想到这个模板)
- 标准框架(步骤或伪代码)
- 复杂度结论
- 通用易错点
- 再写本题差异化补充:
- 本题相对模板多了什么约束
- 本题做了什么特化(公式、边界、剪枝、数据结构替换)
- 若用户明确要求“按题型总结”,优先保证第 1 部分完整,再补第 2 部分。
执行步骤
- 读取用户指定的参考文件(如
TianTi/L2/L2-007.cpp)对齐排版风格。 - 读取目标文件:
- 若文件为空,直接写入完整内容。
- 若文件非空,在不破坏现有内容的前提下,按用户要求增量更新。
- 将用户给出的题解代码整理为可运行版本:
- 补齐必要头文件和
main。 - 保持原算法不变,优先做最小改动。
- 补齐必要头文件和
- 在代码下方补“总结”:
- 先写通用模板,再写本题差异;4~10 条短句。
- 自检:
- 能处理题目给定数据范围(复杂度符合约束)。
- 变量名和边界条件一致,无明显越界或空栈风险。
默认风格约束
- 使用 ASCII 字符。
- 不删除用户已有内容,优先增量编辑。
- 不删除用户原有注释;若需调整实现,优先注释保留旧实现再新增新实现。
- 注释简洁,避免重复解释显而易见的语句。
- 若用户给出的代码可直接用,避免无关重构。
- 默认不做编译/运行验证,除非用户明确要求。
- 当用户希望“可复用/模板化”时,禁止只写单题题解复述。
- 若出现“代码已替换但题面/总结被覆盖”的风险,必须先停止并回填缺失结构,再继续编辑。
常见题型速判
- 删除 k 位取最大/最小:单调栈
- 子序列最值且需保序:贪心 + 栈
- 固定长度最值:双端队列/单调队列
- 多次区间统计:前缀和/差分