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