| date | 2025-10-21 15:01:00 -0700 | |||||
|---|---|---|---|---|---|---|
| tags |
|
📅 项目时间:2025.10.21 — 2025.11.17 · 已完成
“Talk is cheap. Show me the code.” —— Linus Torvalds
每一次 AC,都是未来你在赛场上自信的底气; 每一次调试,都是你在黑夜中点亮的一盏灯; 算法不是冷冰冰的符号,而是你智识与意志的交响。
💡 别怕题海,只怕你停桨。算法之路,从不是天赋者的独舞,而是坚持者的长跑。
项目构建时间:2025年10月21日-2025年11月17日。
AcWing 算法模板库 是一个面向算法学习者的系统化学习项目,基于 AcWing 的课程内容整理而成。 项目旨在帮助你从零构建算法体系,理解算法背后的思想,掌握可直接上手的模板,实现“从入门到竞赛级”的跃迁。
📘 内容涵盖:
- 精炼的 算法笔记
- 结构化的 代码模板
- 精选的 练习题目清单
无论你是刚踏入算法世界的新手,还是想系统巩固知识的进阶者,这个仓库都将是你攀登算法之巅的坚实阶梯。
| 模块 | 内容 | 进度 |
|---|---|---|
| 基础算法 | 快排、归并、二分、高精度、前缀和、双指针、位运算、离散化、区间合并 | ✅ 已完成 |
| 数据结构 | 链表、栈队列、单调栈队列、KMP、Trie树、并查集、堆、哈希表 | ✅ 已完成 |
| 图论算法 | DFS/BFS、图遍历、拓扑排序、最短路、最小生成树、二分图 | ✅ 已完成 |
| 基础数学 | 质数约数、欧拉函数、快速幂、组合计数、容斥原理、博弈论 | ✅ 已完成 |
| 动态规划 | 背包问题、线性DP、区间DP、计数DP、数位DP、状态压缩、树形DP | ✅ 已完成 |
| 贪心问题 | 区间问题、哈夫曼树、排序不等式、绝对值不等式、推公式 | ✅ 已完成 |
AcwingTemplate/
├── README.md # 📖 项目主文档(本文件)
├── Problem_list.md # 📝 1300+道精选算法练习题单
└── 算法基础课/ # 📚 算法课程内容
├── assets/ # 🖼️ 图片、音频等辅助资源
├── 1_基础算法_原始格式.md # 📝 基础算法详细笔记
├── 1_基础算法_美化后.md # ✨ 基础算法精美版笔记
├── 2_数据结构_原始格式.md # 📝 数据结构详细笔记
├── 2_数据结构_美化后.md # ✨ 数据结构精美版笔记
├── 3_搜索与图论_原始格式.md # 📝 搜索与图论详细笔记
├── 3_搜索与图论_美化后.md # ✨ 搜索与图论精美版笔记
├── 4_数学知识_原始格式.md # 📝 数学知识详细笔记
├── 4_数学知识_美化后.md # ✨ 数学知识精美版笔记
├── 5_动态规划_原始格式.md # 📝 动态规划详细笔记
├── 5_动态规划_美化后.md # ✨ 动态规划精美版笔记
├── 6_贪心问题_原始格式.md # 📝 贪心问题详细笔记
├── 6_贪心问题_美化后.md # ✨ 贪心问题精美版笔记
└── 7_时间复杂度分析.md # ⏱️ 算法复杂度分析专题
一个系统整理的算法题单,覆盖基础算法、数据结构、图论、数学知识等核心模块。 题目来源包括 LeetCode、洛谷、AcWing 等平台,并根据算法类型分类整理,帮助你有的放矢地练习。
-
每章提供原始版与美化版,先读美化版再看原始版,兼顾深度与可读性
-
🔰 基础算法:快排、归并、二分、前缀和、双指针、位运算、离散化、区间合并
-
🏗️ 数据结构:链表、栈队列、单调结构、KMP、Trie、并查集、堆、哈希
-
🕸️ 搜索与图论:DFS/BFS、拓扑、最短路、最小生成树、二分图
-
🧮 数学知识:质数与约数、欧拉函数、快速幂、组合计数、容斥、博弈论
-
🎒 动态规划:背包、线性DP、区间DP、计数/数位DP、状态压缩、树形DP
-
💎 贪心问题:区间类、哈夫曼、排序不等式、绝对值不等式、推公式
-
⏱️ 时间复杂度分析:常见算法/数据结构复杂度与优化方向
🌱 “算法训练,就像在脑海中种下一片森林。每道题,都是你种下的一棵树。”
📖 第一步:阅读笔记
选择版本:初学者建议从"美化后"版本开始,有一定基础后可参考"原始格式"深入理解
理解原理:仔细阅读算法思想、复杂度分析部分
研究模板:分析代码模板的实现细节和优化技巧
查看例题:通过具体例子加深对算法应用的理解
🎯 第二步:刷题实践
查找题目:在Problem_list.md中找到对应知识点的练习题
从易到难:按照题单中的难度顺序逐步挑战
多平台练习:利用LeetCode、洛谷等平台的不同题型
记录总结:建立错题本,记录解题思路和易错点
💻 第三步:掌握模板
理解代码:不要死记硬背,要理解每行代码的作用
手动实现:尝试不看书自己写出完整模板
改造应用:根据具体问题对模板进行适当修改
速度优化:通过反复练习提高代码实现速度
🔄 第四步:复习巩固
定期回顾:每隔一段时间复习已学算法
综合应用:尝试解决需要多个算法结合的复杂问题
分享讲解:向他人讲解算法,检验自己的理解程度
参加竞赛:通过实际比赛检验学习成果
🧠 “模板不是死记硬背的符号,而是思维的骨架。 当你能脱稿写出模板,就是算法真正刻进了你的大脑。”
- 循序渐进:按照基础算法→数据结构→搜索与图论→数学知识→动态规划→贪心问题的顺序学习
- 三步掌握:理解原理→模板实现→题目验证,每个算法都要经历这三个阶段
- 错题管理:建立错题本,记录错误原因、正确思路和反思总结
- 知识输出:通过写博客、讲解给他人来检验和深化理解
- 长期坚持:算法学习是智力与耐心的修行,需要持之以恒
- 番茄工作法:25分钟专注学习+5分钟休息,保持高效状态
- 费曼学习法:尝试用最简单的语言向他人解释复杂算法
- 刻意练习:针对薄弱知识点进行专项训练
- 思维导图:用图形化方式整理和连接知识点
- 定期复习:遵循艾宾浩斯遗忘曲线,科学安排复习时间
💬 "写算法就像炼剑:每一次调试都是在打磨,每一次 AC 都是剑出鞘的刹那。"
如果你此刻正在为一道题苦思冥想,请记住—— 所有的“顿悟”,都来自无数次的“不懂”; 所有的“秒 AC”,都源于曾经的千百次 TLE。
算法不是选拔天才的门槛,而是淬炼思维的磨刀石。
当你勇敢敲下第一个 cout << "Hello World";,你就已经踏上了伟大的征程。
“哪怕前路艰难,也请继续前行。 因为在不远的将来,那个会写出最优解的你,一定会感谢现在坚持的自己。”
Happy Coding, and Keep AC-ing! 🎉💪
https://www.hjw-aihub.cn/technology/acwing-base-learning
acwing算法基础课整理ACM模板 - VanHope - 博客园
Yuki2L0ve/algorithm: There are many notes for the major algorithmic platforms are stored here.