随笔分类 -  Algorithm

摘要:算法总结之矩阵入门定义 矩阵: 矩阵是矩形的数组,例如 矩阵的转置: 交换矩阵A的行和列获得的矩阵是矩阵A的转置AT,例如 对称矩阵: A=AT 单位矩阵: 对角线元素均为1的n*n的矩阵为n*... 阅读全文
posted @ 2014-11-03 14:17 Enumz 阅读(657) 评论(0) 推荐(0)
摘要:算法总结之求解模线性方程组1)求解模线性方程 ax = b(mod n) 方程ax = b(mod n) -> ax = b + ny ->ax - ny = b -> ax + n (-y) =b 其中a,n,b已知。 可用扩展欧几里得来求解该方程的一组特解。 这里给出下列几个定理用来求解方... 阅读全文
posted @ 2014-10-30 19:15 Enumz 阅读(1799) 评论(0) 推荐(1)
摘要:一 几何公式三角形: 1. 半周长 P=(a+b+c)/2 2. 面积 S=aHa/2=absin(C)/2=sqrt(P(P-a)(P-b)(P-c)) 3. 中线 Ma=sqrt(2(b^2+c^2)-a^2)/2=sqrt(b^2+c^2+2bccos(A))/2 4. 角平分线 Ta... 阅读全文
posted @ 2014-08-02 09:28 Enumz 阅读(509) 评论(0) 推荐(1)
摘要:1.概念 生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数... 阅读全文
posted @ 2014-07-31 08:12 Enumz 阅读(1332) 评论(3) 推荐(3)
摘要:算法总结之欧拉函数&中国剩余定理1.欧拉函数 概念:在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn) 其中p1, p2……pn为x的所有质因数,x是不为0的整数 ... 阅读全文
posted @ 2014-07-30 17:37 Enumz 阅读(2129) 评论(0) 推荐(3)
摘要:算法总结之欧几里德算法1.欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。 其计算原理依赖于下面的定理: gcd(a,b)=gcd(b,amodb)(a>b且amodb不为0)代码实现:1 int gcd(int a,int b)2 {3 return ... 阅读全文
posted @ 2014-07-28 17:25 Enumz 阅读(1157) 评论(0) 推荐(3)
摘要:拓扑排序1.一般应用 拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。例如,在日常工作中,可能会将项目拆分成A、B、C、D四个子部分来完成,但A依赖于B和D,C依赖于D。为了计算这个项目进行的顺序,可对这个关系集进行拓扑排序,得出一个线性的序列,则排在前面的任务就是需要先完成的任务。2.实现... 阅读全文
posted @ 2014-07-27 17:35 Enumz 阅读(14474) 评论(0) 推荐(1)
摘要:Floyd算法 Floyd算法可以用来解决任意两个顶点之间的最短路径问题。 核心公式为: Edge[i][j]=Min{Edge[i][j],Edge[i][k]+Edge[k][j]}。 即通过对i,j两个顶点之间插入顶点后比较路径的大小来进行松弛。 首先我们来定义一个二维数组E... 阅读全文
posted @ 2014-07-25 17:33 Enumz 阅读(1151) 评论(1) 推荐(5)
摘要:邻接表 邻接矩阵来存储图的信息相对于非完全图,会浪费大量的空间,同时在求最短路径的时候也会有多余的计算浪费时间。 使用邻接表可以节约这些浪费的时间。 这里介绍的是用数组模拟的邻接表: 定义begin[MAXN],end[MAXN],dis[MAXN],first[MAXN],next[MAX... 阅读全文
posted @ 2014-07-23 14:35 Enumz 阅读(942) 评论(0) 推荐(0)
摘要:SPAF算法求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm,该算法是西南交通大学段凡丁于1994年发表的。它可以在O(kE)的时间复杂度内求出源点到其他所有点的最短路径。其中k为所有顶点进队的平均次数,可以证明k一般小于等于2,可以处理负边,但无法处... 阅读全文
posted @ 2014-07-23 11:55 Enumz 阅读(379) 评论(0) 推荐(0)
摘要:Bellman-Ford算法Dijkstra算法无法判断含负权边的图的最短路。如果遇到负权,在没有负权回路存在时,即便有负权的边,也可以采用Bellman-Ford算法正确求出最短路径。PS:负权回路的含义是,回路的权值和为负。算法描述1.初始化:将除源点外的所有顶点的最短距离估计值d[v]←+∞,... 阅读全文
posted @ 2014-07-23 11:51 Enumz 阅读(273) 评论(0) 推荐(0)
摘要:Dijkstra算法 Dijkstra算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 注意该算法要求图中不存在负权边。 首先我们来定义一个二维数组Edge[MAXN][MAXN]来存储图的信息。 这个图的Edge数组初始化以后为 我们还需要用一个一维数组dis来存储... 阅读全文
posted @ 2014-07-23 11:45 Enumz 阅读(247) 评论(0) 推荐(0)