概述
目录
- 一、基础算法
- 1、排序
- 2、二分查找
- 3、高精度
- 4、前缀和与差分
- 5、双指针算法
- 6、位运算
- 7、离散化
- 8、区间合并
- 9、RMQ
- 二、动态规划
- 1、线性DP
- 2、背包问题
- 3、状态机模型
- 4、状态压缩DP
- 5、区间DP
- 6、树形DP
- 7、数位DP
- 8、单调队列优化
- 9、斜率优化
- 三、搜索
- 1、BFS
- ①、Flood Fill
- ②、最短路模型
- ③、多源BFS
- ④、最小步数模型
- ⑤、双端队列广搜
- ⑥、双向广搜
- ⑦、A*
- 2、DFS
- ①、连通性模型
- ②、搜索顺序
- ③、剪枝与优化
- ④、迭代加深
- ⑤、双向DFS
- ⑥、IDA*
- 四、数据结构
- 0、STL
- 1、链表与邻接表
- 2、栈与队列
- 3、kmp
- 4、Trie
- 5、堆
- 6、Hash表
- 7、并查集
- 8、树状数组
- 9、线段树
- 10、可持久化数据结构
- 11、平衡树——Treap
- 12、AC自动机
- 五、图论
- 1、树和图遍历
- 2、最短路
- 3、最小生成树
- 4、差分约束
- 5、最近公共祖先
- 6、有向图的强连通分量
- 7、无向图的双连通分量
- 8、二分图
- 9、欧拉回路和欧拉路径
- 10、拓扑排序
- 六、贪心
- 1、区间问题
- 2、Huffman树
- 3、排序不等式
- 4、绝对值不等式
- 5、推公式
- 七、数学知识
- 1、质数
- 2、约数
- 3、欧拉函数
- 4、快速幂
- 5、扩展欧几里得算法
- 6、中国剩余定理
- 7、高斯消元
- 8、组合计数
- 9、容斥原理
- 10、概率与数学期望
- 11、博弈论
- 12、其他
- 八、其他
一、基础算法
1、排序
快速排序:
快速排序【模板】
第k个数【快速选择】
归并排序:
归并排序【模板】
逆序对
基数排序:
基数排序【模板】
2、二分查找
二分查找【模板】
数的范围
数的三次方根
3、高精度
高精度加法【模板】
高精度减法【模板】
高精度乘法【模板】
4、前缀和与差分
前缀和【模板】
矩阵前缀和【模板】
差分【模板】
矩阵差分【模板】
5、双指针算法
最长连续不重复子序列
6、位运算
位运算【模板】
二进制中1的个数
64位整数乘法
7、离散化
离散化【模板】
区间和
8、区间合并
区间和并【模板】
9、RMQ
二、动态规划
1、线性DP
数字三角形:
摘花生
最低通行费
方格取数
方格取数(20CSPJ普及组)【可上下走】
传纸条(NOIP2008 提高组)
最长上升子序列【LIS】:
怪盗基德的滑翔翼
登山,合唱队形
友好城市【不相交匹配转化】
最大上升子序列和
拦截导弹【dilworth定理】
最长公共子序列【LCS】:
最长公共子序列【相同元素可转最长上升】
最长公共上升子序列【LCIS】:
最长公共上升子序列【O(n^2)做法】
其他:
小球染色【组合数求和】
2、背包问题
背包九讲模板
01背包问题:
采药【模板】
装箱问题
数字组合【体积条件:恰好为V,求方案数】
能量石(Google Kickstart2019 Round B Problem B)【贪心,01背包,价值随体积增大而减小】
完全背包问题:
买书【体积条件:恰好是V,求方案数】
货币系统【体积条件:恰好是V,求方案数】
货币系统(NOIP2018 提高组)【体积条件:恰好是V,求是否存在方案】
多重背包问题:
庆功会【模板】
二维费用问题:
宠物小精灵【模板】
潜水员【体积条件:不少于V,求最小价值】
分组背包问题:
金明的预算方案(附件数<=2)
机器分配【分组背包,求具体方案】
有依赖背包问题:
二叉苹果树【体积为1的弱化版】
3、状态机模型
大盗阿福
买卖股票的时机 IV(LeetCode 188 Hard)
买卖股票时机含冷冻期(LeetCode 309)
设计密码【不包含某个子串的方案数,KMP】
4、状态压缩DP
棋盘类状压:
蒙德里安的梦想
国王 (ZJOI 2008)
玉米田
炮兵阵地(NOI2001)【由前两行递推】
集合类状压:
最短Hamilton路径
毕业旅行问题 (字节跳动2019春招研发)
愤怒的小鸟(NOIP2016 提高组)【重复覆盖问题】
5、区间DP
石子合并【模板题】
凸多边形的划分【高精度】
环形区间DP:
石子合并(NOI1995)
能量项链(NOIP2006 提高组)
记录方案:
加分二叉树(NOIP2003 提高组)
二维区间DP:
棋盘分割(NOI1999)
6、树形DP
Balancing Act【树的重心】
Cow Marathon【树的直径】
【树的中心】
数字转换【约数建边+树的直径】
二叉苹果树【有依赖背包问题】
没有上司的舞会【每条边至多选1点】
战略游戏【每条边至少选1点】
皇宫看守【每个点自身被选或其相邻的点被选】
7、数位DP
数字游戏【区间内的不降数】
Amount of Degrees【区间内B进制有且只有K个1】
Windy 数【相邻数字只差>=2、不含前导0】
数字游戏 2【各位数字之和模N为0】
不要 62【不包含4和62】
8、单调队列优化
9、斜率优化
三、搜索
1、BFS
①、Flood Fill
池塘计数【Flood Fill模板】
城堡问题(The Castle)【Flood Fill、并查集】
山峰和山谷
②、最短路模型
迷宫问题【最短路模型模板】
武士风度的牛
抓住那头牛
③、多源BFS
④、最小步数模型
⑤、双端队列广搜
⑥、双向广搜
字串变换【双向广搜模板】
⑦、A*
八数码【A*模板】
2、DFS
①、连通性模型
②、搜索顺序
③、剪枝与优化
④、迭代加深
⑤、双向DFS
⑥、IDA*
四、数据结构
0、STL
STL【模板】
1、链表与邻接表
链表【模板】
2、栈与队列
单调栈【模板】
单调队列【模板】:滑动窗口
3、kmp
KMP【模板】
4、Trie
Trie树【模板】
5、堆
堆【模板】
6、Hash表
7、并查集
并查集【模板】
格子游戏【判断环】
连通块中点的数量【记录集合元素个数】
8、树状数组
9、线段树
10、可持久化数据结构
11、平衡树——Treap
12、AC自动机
五、图论
1、树和图遍历
树的深度优先遍历:
Balancing Act【树的重心】
树的宽度优先遍历:
Cow Marathon【树的直径】
2、最短路
Dijkstra【证明+模板】
Bellman-Ford、SPFA【证明+模板】
Floyd【证明+模板】
3、最小生成树
4、差分约束
5、最近公共祖先
6、有向图的强连通分量
7、无向图的双连通分量
8、二分图
9、欧拉回路和欧拉路径
10、拓扑排序
六、贪心
1、区间问题
区间选点
最大不相交区间
区间分组
区间覆盖
2、Huffman树
合并果子【O(nlogn) / O(n)】
3、排序不等式
4、绝对值不等式
5、推公式
奶牛玩杂技
七、数学知识
1、质数
试除法判断质数【
O
(
n
)
O(sqrt{n})
O(n)】
试除法分解质因数【
O
(
n
)
O(sqrt{n})
O(n)】
筛质数【基本 / 埃氏 / 线性筛法】
2、约数
试除法求约数【
O
(
n
)
O(sqrt{n})
O(n)】
求约数个数【是质数的约数个数+1相乘】
求约数之和
最大公约数【辗转相除】
3、欧拉函数
欧拉函数
线性筛求多个数的欧拉函数
欧拉定理
4、快速幂
快速幂
快速幂求逆元【模数为质数】
5、扩展欧几里得算法
扩展欧几里得、裴蜀定理
线性同余方程、扩展欧几里得求逆元【a和模数互质】
6、中国剩余定理
7、高斯消元
8、组合计数
9、容斥原理
能被整除的数
10、概率与数学期望
11、博弈论
NIM游戏
移棋子游戏
12、其他
模运算规则
八、其他
最后
以上就是现实帽子为你收集整理的【刷题】算法基础刷题清单一、基础算法二、动态规划三、搜索四、数据结构五、图论六、贪心七、数学知识八、其他的全部内容,希望文章能够帮你解决【刷题】算法基础刷题清单一、基础算法二、动态规划三、搜索四、数据结构五、图论六、贪心七、数学知识八、其他所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复