本 repo 是 acwing 网站 的算法学习笔记,分为 算法模板 和 题解 两个部分。
GitHub Pages 完整阅读:进入
Gitee Pages 完整阅读:进入
- 基础算法:排序、二分、高精度、前缀和与差分、双指针算法、位运算、离散化、区间合并。
- 数据结构:链表、栈与队列、单调队列、单调栈、kmp、Trie、并查集、堆、Hash 表。
- 搜索与图论:DFS与BFS、树与图的遍历:拓扑排序、最短路、最小生成树、二分图:染色法、匈牙利算法。
- 数学知识:质数、约数、欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理、高斯消元、组合计数、容斥原理、简单博弈论。
- 动态规划:闫氏 DP 分析法。
- 贪心
- 时空复杂度:由数据范围反推算法复杂度以及算法内容。
-
动态规划:数字三角形模型、最长上升子序列模型、背包模型、状态机模型、状态压缩DP、区间DP、树形DP、数位DP、单调队列优化的DP问题、斜率优化的DP问题。
-
搜索:BFS、Flood Fill、最短路模型、多源BFS、最小步数模型、双端队列广搜、双向广搜、A*、DFS、连通性模型、搜索顺序、剪枝与优化、迭代加深、双向DFS、IDA*。
-
图论:单源最短路的建图方式、单源最短路的综合应用、单源最短路的扩展应用、floyd算法及其变形、最小生成树的典型应用、最小生成树的扩展应用、SPFA求负环、差分约束、最近公共祖先、有向图的强连通分量、无向图的双连通分量、二分图、欧拉回路和欧拉路径、拓扑排序。
-
高级数据结构:并查集、树状数组、线段树(一)、线段树(二)、可持久化数据结构、平衡树——Treap、AC自动机。
-
数学知识:筛质数、分解质因数、快速幂、约数个数、欧拉函数、同余、矩阵乘法、组合计数、高斯消元、容斥原理、概率与数学期望、博弈论。
-
基础算法:位运算、递归、前缀和与差分、二分、排序、RMQ。