- 博客(13)
- 收藏
- 关注
转载 高斯消元解方程组 Gauss-Jordan elimination
#include #include #include #include #include using namespace std; const int MAXN=50; int a[MAXN][MAXN];//增广矩阵 int x[MAXN];//解集 bool free_x[MAXN];//标记是否是不确定的变元 /* void Debug(void) { int i, j
2013-05-02 20:23:42
1308
原创 线段树 poj3468
线段树,也叫区间数,在各个节点保持着一段区间的信息(可以是该区间的最大值,最小值,第k小的数等等),主要的操作是区间查询,区间更新和建树。因为线段树结构除了最后一层之外是满二叉树,所以操作的复杂度是lgn级别的。树上每个节点的结构大致如下 struct e { int l,r; int value;//待保存的信息 int flag;//延迟更新操作 } 每次更
2013-04-22 11:09:06
620
原创 树状数组 模版
总体上讲,树状数组是为了方便求数组前n项和的一种数据结构,在数组元素经常变动的情况下而对数组求和的时间要求很高时使用 个人感觉应用面比较窄。 模版: void add(int m) { for(int i=m;i } int sum(int end) { int s=0; while(end>0) { s+=ar[end]; end=end-lowbit(end);
2013-04-20 17:14:18
433
原创 树状数组
树状数组 树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。 在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。 但是不难发现,如果我们修改了任意一个A[i],S[i]、S[i+1]...S[n]都会发生变化。 可以说,每次修改A[i]后,调整前缀和S[]在最坏情
2013-04-19 20:25:47
411
原创 POJ 2135 Farm Tour
这道题做的相当纠结,不过有了一点进步总是好的,从这道题中我这个菜鸟学到了一些最基本的东西,总结一下 最小费用最大流是在最大流的基础上求最小费用,对于这种题来说我以前都习惯写邻接矩阵,不过这题是无向图又可能有重边,所以最后只能放弃改成了邻接表的方法,以前只会写邻接链表,用指针构造,比较挫,这次学习了比较通用的方法: 基本上模版如下: struct { int next; int m,n
2013-04-17 19:50:18
407
转载 最小费用最大流模版
一、最小费用最大流的模型 在保证流量最大的前提下,所需的费用最小,这就是最小费用最大流问题. 带有费用的网络流图: G=(V,E,C,W) V:顶点; E:弧;C:弧的容量;W:单位流量费用。 任意的弧对应非负的容量c[i,j]和单位流量费用w[i,j]。满足: ① 流量f是G的最大流。 ② 在f是G的最大流的前提下,流的费用最小。 F是G的最大流的集合(最大流
2013-04-16 13:55:34
744
转载 最小度限制生成树
poj 1639 最小度限制生成树 最小度限制生成树就是给一个图,让求它的最小生成树。找的的最小生成树满足并且点vo的度最大为k。 算法流程如下: 1.将该点(以下用v0表示)从图中删除,将得到p个连通分量。 2.对每个连通分量求最小生成树。 3.从每个连通分量中找与v0关联的权值最小的边,与v0相连接,这样将得到v0的最小p度生成树 4.如果 k 那么这种树是
2013-04-15 16:40:07
681
原创 POJ 2516 Minimum Cost
典型的利用最小费用最大流求解的问题。 题目的要求是根据供应和需求,若可以满足需求,则输出最小费用,否则则输出-1. 首先应该明确这道题应分解为对每个货物种类进行分析,最后汇总结果。对所有种类的货物都进行一遍maxflow后将得到的结果汇总即可。 下面是对任意一种货物进行maxflow的思路。 在初次读题时,感觉在输入cost时题目所要求的input顺序很别扭,明明是从storage到sho
2013-03-18 21:10:08
462
转载 二分图最大匹配的应用
本文将是这一系列里最短的一篇,因为我只打算把König定理证了,其它的废话一概没有。 以下五个问题我可能会在以后的文章里说,如果你现在很想知道的话,网上去找找答案: 1. 什么是二分图; 2. 什么是二分图的匹配; 3. 什么是匈牙利算法;(http://www.matrix67.com/blog/article.asp?id=41) 4. Kön
2013-03-18 14:50:17
926
原创 二分图的最大匹配
二分图最大匹配问题在实际中有很多应用。 首先介绍一下二分图和匹配的相关概念: 二分图:是指节点可以被划分成两个不想交的子集L和R,每个部分内没有边的图,即所有边都横跨L和R。 匹配:是边的一个子集,使得对所有节点v,子集中最多只有一条边以v为端点。最大匹配是该子集所包含边的最大数目。 求二分图的最大匹配有两种方法,一种是通过将二分图的最大匹配转换为最大流问题来解决,算法复杂度比较高
2013-03-18 14:13:59
532
转载 二分图算法
图1是我给出的二分图中的一个匹配:[1,5]和[2,6]。图2就是在这个匹配的基础上找到的一条增广路径:3->6->2->5->1->4。我们借由它来描述一下二分图中的增广路径的性质: (1)有奇数条边。 (2)起点在二分图的左半边,终点在右半边。 (3)路径上的点一定是一个在左半边,一个在右半边,交替出现。(其实二分图的性质就决定了这一点,因为二分图同一边的点之间没有边相连,不要
2013-03-18 11:27:17
561
原创 最大流算法
最大流算法描述的是一个源节点经过流网络达到目的节点的最大流量问题。 对于多源节点和多目的节点的问题可以通过增加一个超级源节点和超级汇聚节点来转换成单源节点和目的节点的问题。 在流网络G(V,E)中,相邻的节点之间有容量限制,实际的流量应不大于这个限制。如果(u,v)属于E,则(u,v).capacity为其容量限制,(u,v).flood为实际在这个边上的流量。(u,v).f 流网络G为有向
2013-03-18 10:58:52
980
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人