ACM算法分类及完成情况
今天闲着无聊,就把ACM的算法分类记录了一下(若有遗漏,后续会补充)顺便记录一下自己的学习进度,嘻嘻(●’◡’●),编程之路,道阻且长,继续加油!愿所有努力的人都能有所收获!
A
C
M
算
法
分
类
{
基
本
算
法
{
枚
举
✔
贪
心
✔
递
归
和
分
治
✔
递
推
✔
构
造
✔
模
拟
✔
搜
索
{
深
度
优
先
搜
索
✔
广
度
优
先
搜
索
✔
双
向
搜
索
✔
A
∗
I
D
A
∗
记
忆
化
搜
索
✔
计
算
几
何
{
几
何
公
式
✔
叉
积
和
点
积
的
运
用
✔
多
边
形
的
简
单
算
法
✔
凸
包
扫
描
线
算
法
多
边
形
的
内
核
几
何
工
具
的
综
合
应
用
半
平
面
求
交
可
视
图
的
建
立
点
集
最
小
圆
覆
盖
对
踵
点
数
学
{
组
合
数
学
{
挂
列
组
合
✔
递
推
关
系
✔
容
斥
原
理
抽
屉
原
理
置
换
群
与
P
o
l
y
a
定
理
母
函
数
M
o
B
i
u
s
反
演
偏
序
关
系
理
论
数
论
{
素
数
与
整
除
问
题
✔
进
制
位
✔
同
余
模
运
算
✔
高
斯
消
元
概
率
问
题
✔
扩
展
欧
几
里
德
✔
矩
阵
✔
博
弈
论
{
极
大
极
小
过
程
N
i
m
博
弈
✔
图
论
{
拓
扑
排
序
✔
最
小
生
成
树
✔
最
短
路
✔
二
分
图
✔
{
匈
牙
利
算
法
✔
K
M
算
法
✔
带
花
树
算
法
✔
网
络
流
{
最
小
费
用
最
大
流
最
小
割
模
型
、
网
络
流
规
约
差
分
约
束
系
统
建
立
与
求
解
双
连
通
分
量
强
连
通
分
支
及
其
缩
点
图
的
割
边
与
割
点
动
态
规
划
{
背
包
问
题
{
01
背
包
✔
完
全
背
包
多
维
背
包
多
重
背
包
基
本
D
P
{
区
间
D
P
环
形
D
P
判
定
型
D
P
棋
盘
分
割
最
长
公
共
子
序
列
✔
最
长
上
升
子
序
列
✔
二
分
判
定
型
D
P
树
型
动
态
规
划
最
大
独
立
集
状
态
压
缩
D
P
✔
哈
密
顿
路
径
问
题
四
边
形
不
等
式
理
论
单
调
队
列
优
化
数
据
结
构
{
字
符
串
{
K
M
P
✔
拓
展
K
M
P
✔
M
a
n
a
c
h
e
r
✔
排
序
{
快
排
✔
归
并
排
(
逆
序
数
)
堆
排
哈
希
表
二
分
✔
并
查
集
✔
哈
夫
曼
树
✔
堆
✔
线
段
树
✔
二
叉
树
✔
树
状
数
组
✔
R
M
Q
✔
ACM算法分类 \begin{cases} 基本算法 \begin{cases} 枚举✔\\ 贪心✔\\ 递归和分治✔\\ 递推✔\\ 构造✔\\ 模拟✔\\ \end{cases}\\ 搜索 \begin{cases} 深度优先搜索✔\\ 广度优先搜索✔\\ 双向搜索✔\\ A^*\\ IDA^*\\ 记忆化搜索✔\\ \end{cases}\\ 计算几何 \begin{cases} 几何公式✔\\ 叉积和点积的运用✔\\ 多边形的简单算法✔\\ 凸包\\ 扫描线算法\\ 多边形的内核\\ 几何工具的综合应用\\ 半平面求交\\ 可视图的建立\\ 点集最小圆覆盖\\ 对踵点\\ \end{cases}\\ 数学 \begin{cases} 组合数学 \begin{cases} 挂列组合✔\\ 递推关系✔\\ 容斥原理\\ 抽屉原理\\ 置换群与Polya定理\\ 母函数\\ MoBius反演\\ 偏序关系理论\\ \end{cases}\\ 数论 \begin{cases} 素数与整除问题✔\\ 进制位✔\\ 同余模运算✔\\ 高斯消元\\ 概率问题✔\\ 扩展欧几里德✔\\ 矩阵✔\\ \end{cases}\\ 博弈论 \begin{cases} 极大极小过程\\ Nim博弈✔\\ \end{cases}\\ \end{cases}\\ 图论 \begin{cases} 拓扑排序✔\\ 最小生成树✔\\ 最短路✔\\ 二分图✔\\ \begin{cases} 匈牙利算法✔\\ KM算法✔\\ 带花树算法✔\\ \end{cases}\\ 网络流 \begin{cases} 最小费用最大流\\ 最小割模型、网络流规约 \end{cases}\\ 差分约束系统建立与求解\\ 双连通分量\\ 强连通分支及其缩点\\ 图的割边与割点\\ \end{cases}\\ 动态规划 \begin{cases} 背包问题 \begin{cases} 01背包✔\\ 完全背包\\ 多维背包\\ 多重背包\\ \end{cases}\\ 基本DP \begin{cases} 区间DP\\ 环形DP\\ 判定型DP\\ 棋盘分割\\ 最长公共子序列✔\\ 最长上升子序列✔\\ \end{cases}\\ 二分判定型DP\\ 树型动态规划 最大独立集\\ 状态压缩DP✔ 哈密顿路径问题\\ 四边形不等式理论\\ 单调队列优化\\ \end{cases}\\ 数据结构 \begin{cases} 字符串 \begin{cases} KMP✔\\ 拓展KMP✔\\ Manacher✔\\ \end{cases}\\ 排序 \begin{cases} 快排✔\\ 归并排(逆序数)\\ 堆排\\ \end{cases}\\ 哈希表\\ 二分✔\\ 并查集✔\\ 哈夫曼树✔\\ 堆✔\\ 线段树✔\\ 二叉树✔\\ 树状数组✔\\ RMQ✔\\ \end{cases}\\ \end{cases}
ACM算法分类⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧基本算法⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧枚举✔贪心✔递归和分治✔递推✔构造✔模拟✔搜索⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧深度优先搜索✔广度优先搜索✔双向搜索✔A∗IDA∗记忆化搜索✔计算几何⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧几何公式✔叉积和点积的运用✔多边形的简单算法✔凸包扫描线算法多边形的内核几何工具的综合应用半平面求交可视图的建立点集最小圆覆盖对踵点数学⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧组合数学⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧挂列组合✔递推关系✔容斥原理抽屉原理置换群与Polya定理母函数MoBius反演偏序关系理论数论⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧素数与整除问题✔进制位✔同余模运算✔高斯消元概率问题✔扩展欧几里德✔矩阵✔博弈论{极大极小过程Nim博弈✔图论⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧拓扑排序✔最小生成树✔最短路✔二分图✔⎩⎪⎨⎪⎧匈牙利算法✔KM算法✔带花树算法✔网络流{最小费用最大流最小割模型、网络流规约差分约束系统建立与求解双连通分量强连通分支及其缩点图的割边与割点动态规划⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧背包问题⎩⎪⎪⎪⎨⎪⎪⎪⎧01背包✔完全背包多维背包多重背包基本DP⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧区间DP环形DP判定型DP棋盘分割最长公共子序列✔最长上升子序列✔二分判定型DP树型动态规划 最大独立集状态压缩DP✔ 哈密顿路径问题四边形不等式理论单调队列优化数据结构⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧字符串⎩⎪⎨⎪⎧KMP✔拓展KMP✔Manacher✔排序⎩⎪⎨⎪⎧快排✔归并排(逆序数)堆排哈希表二分✔并查集✔哈夫曼树✔堆✔线段树✔二叉树✔树状数组✔RMQ✔