ACM的算法分类(ZZ)

来源:互联网 发布:机智软件 骗 编辑:程序博客网 时间:2024/06/05 17:42

 

(1)基本算法:

枚举

贪心

递归和分治

递推

构造法

模拟法

 

(2)图算法:

深度优先遍历

广度优先遍历

最短路(dijkstra不允许含负权图,bellman-ford算法是求含负权图的单源最短路径算法,效率很低,但代码很容易写,Floyd算法插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法)最小生成树(prim,kruskal)拓扑排序(对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若<u,v> ∈E(G),则u在线性序列中出现在v之前)

二分图的最大匹配

最大流的增光路算法

 

(3)数据结构:

串string

排序(快速,归并(与逆序数有关),堆排序)

简单并查集(并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题)

哈希表和二分查找等高效查找法(数的hash,串的hash)

哈夫曼树

trie数(静态建树,动态建树)

 

(4)简单搜索

深度优先搜索

广度优先搜索

简单搜索技巧和剪枝

 

(5)动态规划:

背包问题

简单DP(最长公共子序列,最优二分检索树)

 

(6)组合数学:

加法乘法原理

排列组合

 

(7)数论:

素数与整除问题

进制位

同余模运算

 

(8)几何学

几何公式

叉积与点积(线段相交的判定,点到线段的距离)

多边形简单算法

凸包

 

中级:

一:基本算法

C++的标准模板库的应用

 

二:图算法
差分约束系统(如果一个系统由n个变量和m个约束条件组成,其中每个约束条件形如xj-xi<=bk(i,j∈[1,n],k∈[1,m]),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法)

最小费用最大流

双连通分量(在无向连通图中,如果删除该图的任何一个结点都不能该变该图的连通性,则该图为双连通的无向图。一个连通的无向图是双连通的,当且仅当它没有关结点)

强连通分支

图的割边和割点

最小割

 

数据结构:

线段树

静态二叉查找树

树状数组

RMQ

KMP算法

 

搜索:

最优化剪枝和可行性剪枝

搜索的技巧和优化

记忆化搜索

 

动态规划:
较为复杂的动态规划,如动态规划解特别的施行商问题(不知道是啥)

记录状态的动态规划

树形动态规划

 

数学:

组合数学:

容斥原理

抽屉原理

置换群和polya定理

递推关系和母函数

高斯消元法

概率问题

GCD(最大公约数),扩展的欧几里得(中国的剩余定理)

0/1分数规划

三分法求解单峰

矩阵法

迭代逼近

随机化算法

 

计算几何学:

坐标离散化(例如求多个矩形面积的并)

扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用)

多边形的内核(半平面交)

 

 

原创粉丝点击