ACM技能表
看看就好了(滑稽)
数据结构
栈
- 栈
- 单调栈
队列
- 一般队列
- 优先队列/单调队列
- 循环队列
- 双端队列
链表
- 一般链表
- 循环链表
- 双向链表
- 块状链表
- 十字链表
邻接表/邻接矩阵
- 邻接表
- 邻接多重表
Hash表(哈希表)
- Hash表
- 字符串Hash
二叉树
- 一般二叉树
- 遍历二叉树
- [ ] 先序遍历二叉树
- [ ] 中序遍历二叉树
- [ ] 后序遍历二叉树
- Huffman树(赫夫曼树)(最优二叉树)
- Huffman编码(赫夫曼编码)
- 二叉查找树/二叉排序树/二叉搜索树
- [ ] Treap
- [ ] 伸展树
- 线索二叉树
- 平衡二叉树
堆
- 大/小根堆(优先队列)
- 可并堆
- 左偏堆
线段树
- 一维线段树
- 延迟标记
- 二维线段树
- 区间合并
- 区间离散化/压缩
- 扫描线
- 线段树套平衡树
- 主席树/可持久化线段树
树状数组
- 一维树状数组
- [ ] 单点查询+区间修改
- [ ] 区间查询+单点修改
- [ ] 区间查询+区间修改
- 二维树状数组
- [ ] 单点查询+区间修改
- [ ] 区间查询+单点修改
- [ ] 区间查询+区间修改
- N维树状数组
- 逆序对问题
字符串
- 回文字符串
- [ ] 判断
- [ ] 最长回文子串
- [ ] 朴素O(n3)
- [ ] 中心扩散O(n2)
- [ ] 动态规划O(n2)
- [ ] Manacher算法(马拉车算法)O(n)
- KMP算法
- 最小表示法
- 字典树/Trie树
- [ ] 静态建树
- [ ] 动态建树
- [ ] 可持久化Trie树
- 后缀数组
- 后缀树
- 后缀自动机
- Aho-Corasick自动机/AC自动机
并查集
- 并查集
- 路径压缩
- 边带权并查集
分块
RMQ问题
- 朴素
- 线段树
- ST表
- RMQ标准算法
离散化
红黑树
跳跃表
图论
搜索
- 深度优先遍历/DFS
- [ ] 深度优先遍历/DFS
- [ ] DFS序
- [ ] 迭代加深DFS(ID-DFS)
- [ ] 双向DFS
- 广度优先遍历/BFS
- [ ] 广度优先遍历/BFS
- [ ] 双端队列BFS
- [ ] 优先队列BFS
- [ ] 多起点BFS
- [ ] 双重BFS
- [ ] 双向BFS
- 剪枝
- 拓扑排序
- 状态压缩
- A*算法
- IDA*算法
- 记忆化搜索
强连通分量
- 强连通分量
- [ ] Tarjan算法
- [ ] Korasaju算法
- 双连通分量
- 强连通分支及其缩点
- 图的割边和割点
- 2-SAT问题
- 欧拉路问题
- [ ] 欧拉路径
- [ ] 欧拉回路
- 哈密顿回路
最小生成树
- Prim算法
- Kruskal算法(稀疏图)
- Sollin算法
- 次小生成树
- [ ] Prim算法
- [ ] Kruskal算法+LCA
- 最小有向生成树
- 第k小生成树
- 最优比例生成树
- 最小树形图
- 最小瓶颈生成树
- [ ] 最小瓶颈生成树
- [ ] 每对结点间最小瓶颈路
- 最小瓶颈路
- 最小度限制生成树
- 增量最小生成树
- 平面点的欧几里德最小生成树
- 平面点的曼哈顿最小生成树
- 最小平衡生成树
最短路径
- 单源最短路径
[ ] 有向无环图的最短路径
- [ ] 拓扑排序
[ ] 非负权值加权图的最短路径
- [ ] Dijkstra算法
- [ ] Dijkstra算法(二叉堆优化)
- [ ] 含负权值加权图的最短路径
- [ ] Bellman-Ford算法
- [ ] SPFA算法
- 全源最短最短路径
- [ ] Floyd算法
- [ ] Johnson算法
- 次短路径
- 第k短路径
- 差分约束系统
- 平面点对的最短路径(优化)
- 双标准限制最短路径
环
- 环判定
- 负环判定
- [ ] Bellman-Ford算法
- [ ] SPFA算法
网络流
- 最大流问题
[ ] 增广路算法
- [ ] 增广路定理
- [ ] Ford-Fulkerson算法
- [ ] Ford-Fulkerson迭加算法
- [ ] Edmond-Karp算法
- [ ] Dinic算法
- [ ] ISAP算法/最短增广路算法
[ ] 预流推进算法
- 最小割最大流定理
- [ ] 多源多汇问题
- [ ] 无源无汇有容量下界网络的可行流
- [ ] 有容量下界网络的s-t最大/最小流
- [ ] 节点有限制的网络流
- 最小费用最大流问题
- [ ] 容量不固定的s-t最小费用流
- [ ] 含负费用的最小费用最大流
- [ ] 费用与流量平方成正比的最小流
二分图匹配
- 二分图判定
- 二分图最大匹配
- [ ] 匈牙利算法
- Konig定理
- 二分图最小点覆盖
- [ ] 匈牙利算法
- 二分图最小边覆盖
- 二分图最佳完美匹配
- [ ] Kuhn-Munkres算法
- 二分图完全匹配
- [ ] Kuhn-Munkres算法
- 二分图多重匹配
- 二分图带权最大匹配
- [ ] Kuhn-Munkres算法
- 二分图最大独立集
- 最大闭合子图
- 最大密度子图
- 公平分配问题
- 区间k覆盖问题
- 有向无环图(DAG)的最小路径覆盖
- [ ] DAG的最小不相交路径覆盖
- [ ] DAG的最小可相交路径覆盖
树的直径
- 树形DP
- BFS
基环树
最近公共祖先
- 向上标记法
- 树上倍增
- Tarjan 算法
- LCA 转 RMQ
弦图
稳定婚姻问题
动态规划
四边形不等式理论
不完全状态记录
- 青蛙过河问题
- 区间DP
背包问题
- 0-1背包
- 完全背包
- 分组背包
- 多重背包
- 判定性背包问题
- 带附属关系的背包问题
- + -1背包问题
- 双背包求最优值
- 构造三角形问题
- 带上下界限制的背包问题(012背包)
线性的动态规划问题
- 积木游戏问题
- 决斗(判定性问题)
- 圆的最大多边形问题
- 统计单词个数问题
- 棋盘分割
- 日程安排问题
- 最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等)
- 方块消除游戏(某区间可以连续消去求最大效益)
- 资源分配问题
- 数字三角形问题
- 漂亮的打印
- 邮局问题与构造答案
- 最高积木问题
- 两段连续和最大
- 2次幂和问题
- N个数的最大M段子段和
- 交叉最大数问题
判定性问题的DP(如判定整除、判定可达性等)
- 模K问题的DP
- 特殊的模K问题,求最大(最小)模K的数
- 变换数问题
单调性优化的动态规划
- 1-SUM问题
- 2-SUM问题
- 序列划分问题(单调队列优化)
剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大)
- 凸多边形的三角剖分问题
- 乘积最大问题
- 多边形游戏(多边形边上是操作符,顶点有权值)
- 石子合并(N^3/N^2/NLogN各种优化)
贪心的动态规划
- 最优装载问题
- 部分背包问题
- 乘船问题
- 贪心策略
- 双机调度问题Johnson算法
区间DP
数位DP
状态DP
- 牛仔射击问题(博弈类)
- 哈密顿路径的状态dp
- 两支点天平平衡问题
- 一个有向图的最接近二部图
树型DP
- 完美服务器问题(每个节点有3种状态)
- 小胖守皇宫问题
- 网络收费问题
- 树中漫游问题
- 树上的博弈
- 树的最大独立集问题
- 树的最大平衡值问题
- 构造树的最小环
数学
数论
- 积性函数
- 佩尔方程
- 同余
- [ ] 同余定理
- [ ] 费马小定理
- [ ] 欧拉定理
- [ ] 欧拉定里推论
- [ ] 扩展欧几里得算法
- [ ] 中国剩余定理
- [ ] 乘法逆元
- 素数
- [ ] 欧几里得定理
- [ ] 朴素法
- [ ] 筛选法
- [ ] Eratosthenes筛选法
- [ ] 线性筛
- [ ] 米勒测试法
- 约数/因数/因子
- 连分数逼近
- 循环群生成元
- 进制位
矩阵
- 矩阵乘法
- 矩阵快速幂
- 矩阵转置
组合数学
- 排列组合
- 容斥原理
- 递推关系和生成函数
- Lucas定理
- Polya计数法
- N皇后构造解
- 幻方的构造
- Catalan数列
- Stirling数列
- 斐波拉契数
- 调和数
- 连分数
- MoBius
- 偏序关系理论
计算几何
- 基本公式
- 线段
- 多边形
- 三角形
- 圆
- 球
- 可视图的建立
- 对踵点
- 经典问题
计算方法
- 二分法
- 迭代法
- 三分法
- 快速幂
- 解线性方程组
- 解模线性方程组
- 定积分计算
- 多项式求根
- 周期性方程
- 线性规划
- 快速傅立叶变换
- 随机算法
- 0/1分数规划
- 迭代逼近
- 矩阵法
概率论
- 全概率公式
- 数学期望
博弈论
- SG函数
- 极大极小过程
- Nim问题
ACM技能表的更多相关文章
- 知道创宇研发技能表v3.1
by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关于知道创宇 知行合一 | 守正出奇 知道创宇是一家黑客 ...
- 知道创宇研发技能表v3.0
知道创宇研发技能表v3.0 2015/8/21 发布 by @知道创宇(www.knownsec.com) @余弦 & 404团队 后续动态请关注微信公众号:Lazy-Thought 说明 关 ...
- 知道创宇研发技能表v2.2
知道创宇研发技能表v2.2 2014/3/9 发布 by @知道创宇(www.knownsec.com) @余弦 & 行之 知道创宇是国内Geek十足且普遍被认为特别有前途的互联网安全公司, ...
- 【转】知道创宇研发技能表v2.1
转自:http://blog.knownsec.com/Knownsec_RD_Checklist/v2.1.html# 知道创宇研发技能表v2.1 创建时间:2012/12/1 2013/4/26 ...
- 【ZZ】技能表合集
技能表 http://w.itcodemonkey.com/tag/373.html 1 当一名黑客应该学什么?来看看安全工程师技能表 2 软件测试工程师技能表 3 大数据.数据挖掘技能表 4 C/C ...
- 知道创宇研发技能表v2.1
创建时间:2012/12/1 2013/4/26 公开发布 2013/7/15 新增:牛人1,2,3 2013/7/20 优化:成长,增加:小事心态.任务拆分.方法论 2013/8/12 更新:Web ...
- Python程序员技能表—446家知名企业的Py招聘信息(转载)
Python程序员技能表—446家知名企业的Py招聘信息 转载: python 正在学习python或者想学习python的可以加群:330637182 正在学习python或者想学习python的可 ...
- 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……
热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...
- Lamp后端开发技能表v0.1(转)
专业技能 Linux 阿里云服务器免费购买 服务器环境搭建 常用命令:慕课网-Linux达人养成计划 编辑器vim:床用命令.模式等等 shell Apache/Nginx 环境配置 一些配置项的参数 ...
随机推荐
- neo4j allshortestpaths查询路径不准确问题
同样是5年开发,年薪50万和年薪15万的差距在哪里-.>>> 基本语法 使用neo4j cypher查询语言的小伙伴都知道cypher提供了两个查询最短路径的特殊函数shortest ...
- js三级内联
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- css背景图自适应全屏显示
前几天我在写一个前端页面的时候,需要用到全屏背景图,但是怎么写都不行(要么不全屏,要么不兼容Bootstrap的响应式布局).对,是我腊鸡 后来我在网上找的时候找到一个大神写的笔记,参(照)考(抄)之 ...
- MySQL 必备工具使用的6个锦囊妙计!
这款工具是 MySQL 一个重要分支 percona 的,名称叫做 percona-toolkit(一把锋利的瑞士军刀),它呢是一组命令的集合.今儿给大家介绍几个我们在生产环境中最长用到的. 工具包的 ...
- 第五篇 CSS入门 明白 三种嵌套形式,三种常用控制器
CSS入门 css是 层叠式样式表 css的作用是什么呢?举个抽象的例子啊,HTML是人,CSS则是衣服... css给html穿上衣服,有三种形式: 内嵌.内联.外联. 这三种形式,优先级为 ...
- Java缓存要点
1.缓存一般是这样的:先查缓存,查不到就查DB,如果DB查不到就结束,DB查到了就写入缓存. 如果用户一直在大量地查询不存在的数据,则所有的请求都会落到DB,而且没有数据写入缓存. 解决方法:把查不到 ...
- Delphi MainMenu组件
- c++实现服务器和多个客户端的实时群聊通信
我们通过TCP/IP来实现多人聊天室,如果租一个服务器我们就可以实现全网的多人聊天室(不懂tcp/ip的点进来https://www.cnblogs.com/yskn/p/9335608.html)! ...
- 标准C语言(8)
指针变量用来记录地址数据,指针变量的用途就是找到另外一个变量,没有记录有效地址的指针不能用来找到其它变量,声明指针变量时必须在变量名称前写*.如果一个指针变量记录了另外一个变量的地址就可以认为它们之间 ...
- 页面内置函数${fn:}
引入头文件<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions " %&g ...