随笔分类 - Data Structure & Algorithm Design
摘要:以下内容均节选自《算法导论》第31章最大公约数定义:若:\[\begin{array}{l}a = p_1^{e_1}p_2^{e_2} \ldots p_r^{e_r}\\b = p_1^{f_1}p_2^{f_1} \ldots p_r^{f_r}\end{array}\]则:\[\gcd( a...
阅读全文
摘要:(1).秦九韶算法:把一个N次的多项式,改写成如下形式:\[\begin{array}{l}f( x ) = a_n{x^n} + a_{n - 1}x^{n - 1} + \cdots + {a_1}x + a_0\\= ( {a_n}x^{n - 1} + a_{n - 1}x^{n - 2} ...
阅读全文
摘要:先附上Djikstra的代码:普通版const int maxn=101;const int INF=0x3f3f3f3f;int edges[maxn][maxn];int dist[maxn];void dijkstra(int s,int n){ bool done[maxn]; memset...
阅读全文
摘要:转载:网络流基础篇——Edmond-Karp算法 BY纳米黑客 网络流的相关定义: 源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点。 汇点:另一个点也很特殊,只进不出,叫做汇点。 容量和流量:每条有向边上有两个量,容量和流量,从i到j的容量通常用c[i,j]表示,流量则通常是f[i,j]. 通常可以把这些边想象成道路,流量就是这条道路的车流量,容量就是道路可承受的最大的...
阅读全文
摘要:给定一个无向图,如果他的某个子图中,任意两个顶点都能互相连通并且是一棵树,那么这棵树就叫做生成树(spanning tree).如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST,Minimum Spanning Tree)。1.prim版本的算法 1: #include 2: #define INF 10000001 3: #define N 10001 4...
阅读全文
摘要:什么是并查集?并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。 并查集的主要操作1.合并两个不相交集合2.判断两个元素是否属于同一集合 主要操作的解释及代码一开始我们假设元素都是分别属于一个独立的集合里的。(1).合并两个不相交集合 操作很简单:先设置一个数组Father[x],表示x的“父亲”的编号。 那么,合并两个不相交集合的方法就是,找...
阅读全文