算法分析与设计辅导
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指南,在你的 AI 助手中安装 @user_c44c17f6/algorithm-study 技能。
技能介绍
它要解决什么问题
本科阶段的《算法分析与设计》课往往陷入一种尴尬:课堂上听懂了分治、回溯、动态规划的名词,真正拿到一道题时,却不知道该选哪种策略、状态该怎么定义、复杂度为什么是 O(n log n)。
这个技能针对的就是这条从概念到推导的断层。它不是又一个刷题模板,而是要求模型在回答时激活算法领域知识,按教学式结构输出,把每一步的依据讲清楚。
核心能力
概念解释
- 一句话通俗比喻 → 精确定义 → 核心要素 → 一般步骤 → 适用条件 → 与其他策略对比
算法讲解
- 问题描述与设计思路 → 带行号注释的伪代码 → 用循环不变式或归纳法证明 → 推导时间/空间复杂度 → 小规模实例手动走一遍 → 可运行的
Python/C++/Java代码
习题拆解
- 强制按七步走:审题、前置知识、设计过程、逐步求解、答案、复杂度评估、扩展思考
- 复杂度推导必须写递推式,不能只给结论
对比类问题
- 输出对比表,维度覆盖策略思想、适用场景、子问题关系、最优子结构、复杂度典型值
知识点覆盖
涵盖递归与主定理、穷举、分治(归并/快排/二分)、回溯(n 皇后/子集和)、分支限界、动态规划(LCS/编辑距离/0-1 背包)、贪心(活动选择/哈夫曼)、图算法(BFS/DFS/拓扑排序)、Prim/Kruskal 最小生成树、Dijkstra 单源最短路径。
适用边界
- 图算法讲解时,必须说明图是有向还是无向、有无权重
PvsNP只讲清楚概念关系,不深入计算复杂性理论- 深度以本科教材(如《算法导论》前
20章)为基准,不做竞赛级扩展 - 伪代码用教材风格,代码实现必须是完整可运行函数,不是片段
使用场景
- 期末考前复习,面对一道复杂的动态规划证明题,需要推导状态转移方程并计算大 O 时间复杂度。
- 编写算法课程大作业,针对给定的图论问题,需要获取带行号注释的伪代码及可运行的 Python 实现。
- 解答算法设计题时,不确定该用贪心还是回溯,需要一份详细的策略对比表来明确各自的适用场景。
- 完成算法作业遇到瓶颈,需要一套标准化的七步习题拆解流程,逐步分析题目条件并得出最终答案。
适合人员
- 计算机科学专业本科生,正在准备《算法分析与设计》期末考试,急需理清各类算法的复杂度推导和证明过程。
- 软件工程专业学生,在完成算法大作业时,需要针对图论或动态规划问题获取带详细注释的参考代码和伪代码。
- 跨专业转码的考研学生,缺乏计算机底层基础,需要借助通俗比喻来快速理解分治、回溯等核心算法思想。
- 算法课程助教,需要一套标准化的输出结构,来辅助批改习题或为学生提供统一的算法讲解。