文章分类 -  图论网络流

[转]关键路径
摘要:转载地址http://www.cnblogs.com/navorse/articles/1893863.htmlAOE网:在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。AOE网中没有入边的顶点称为始点(或源点),没有出边的顶点称为终点(或汇点)。AOE网的性质:⑴ 只有在某顶点所代表的事件发生后,从该顶点出发的各活动才能开始;⑵ 只有在进入某顶点的各活动都结束,该顶点所代表的事件才能发生。关键路径:在AOE网中,从始点到终点具有最大路径长度(该路径上的各个活动所持续的时间之和)的路径称为关键路径。关 阅读全文
posted @ 2011-09-29 11:54 CrazyAC 阅读(561) 评论(0) 推荐(0)
最短路总结
摘要:朴素最短路。hdoj 2544 最短路 告诉你图的点,和拥有的边,求两点最短路。我们只要把图存到邻接表或者邻接矩阵中,然后用dijkstra或者spfa来操作这个矩阵就可以得到起点到终点的最短路了。spfa:#include <iostream>#include <cstdio>#include <cstring>#include <queue>#define inf 100000000using namespace std;int len[102], mp[102][102];int adjmp[102][102];int n, m;void 阅读全文
posted @ 2011-03-25 18:00 CrazyAC 阅读(499) 评论(0) 推荐(0)
Dinic
摘要:hdoj 1569 & hdoj 1565 方格取数1. 最小点权覆盖集=最小割=最大流2. 最大点权独立集=总权-最小点权覆盖集将格子黑白染色,然后求最小割。#include <iostream>#include <cstring>using namespace std;/*==================================================*\| Dinic 最大流 O(V^2 * E)| INIT: ne=2; head[]置为0; addedge()加入所有弧;| CALL: flow(n, s, t);\*======= 阅读全文
posted @ 2011-03-12 10:14 CrazyAC 阅读(542) 评论(0) 推荐(0)
Fold_Fulkerson
摘要:hdoj 1532Drainage Ditches每次bfs找到一个增广路径,然后根据路径添加反向弧,得到残余网络。直到找不到增广路径。#include <iostream>#include <vector>#include <queue>using namespace std;const int inf = 210000000;int n, m, mp[202][202], P[202];vector<int> vec[202];void init() { int i, j, a, b, c; for( i=0; i<=m; ++i ) 阅读全文
posted @ 2011-03-11 13:17 CrazyAC 阅读(288) 评论(0) 推荐(0)
求边数最小且为奇数条边的环
摘要:hdoj 1689Alien’s Necklace枚举每一条边进行dfs。剪枝:1.搜索时记录每个点的搜索深度,如果现在的深度小于所记录的深度,才能访问这个点。2.当出现最小的3时,就不用继续搜索了。差不多的一题:2.hdoj 1599 find the mincost route 阅读全文
posted @ 2011-02-21 12:26 CrazyAC 阅读(400) 评论(0) 推荐(0)
判断无向图是否连通,求图的直径
摘要:hdoj 1869 六度分离 阅读全文
posted @ 2011-02-17 19:49 CrazyAC 阅读(4000) 评论(0) 推荐(0)
拓扑排序判断环
摘要:hdoj 1811 Rank of Tetris由于有等号的情况,所以要运用并查集,具有相等的点都有公共的父节点,从而相等的化作一个点。然后拓扑排序判断有没有环。 阅读全文
posted @ 2011-02-17 13:25 CrazyAC 阅读(1470) 评论(0) 推荐(0)
KM算法
摘要:hdoj 2813 One fihgt one最大带权匹配引用1:KM算法是通过给每个顶点一个标号(叫做顶标)来把求最大权匹配的问题转化为求完备匹配的问题的。设顶点Xi的顶标为A[i],顶点Yi的顶标为B [i],顶点Xi与Yj之间的边权为w[i,j]。在算法执行过程中的任一时刻,对于任一条边(i,j),A[i]+B[j]=w[i,j]始终 成立。KM算法的正确性基于以下定理:   若由二分图中所有满足A[i]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹配就是二分图的最大权匹配。   这个定理是显然的。因为对于二分图的任意一个匹配,如果它包含于相 阅读全文
posted @ 2011-01-11 13:35 CrazyAC 阅读(7992) 评论(3) 推荐(0)
确定图是否连通,和是否存在奇环
摘要:hdoj 3478 Catch1.判断图是否连通。这里只要判断不用求几个连通分量,直接广搜。2.判断奇环。mark[]数组中记录步数的奇偶性,如果相邻两点的奇偶性相同,则说明存在奇环。 阅读全文
posted @ 2011-01-09 00:48 CrazyAC 阅读(638) 评论(0) 推荐(0)
Hopcroft_Karp算法
摘要:在匈牙利算法中,我们每次寻找一条增广路来增加匹配集合M.可以证明,每次找增广路的复杂度是O(E),一共需要增广O(V)次,因此总时间复杂度为O(VE).为了降低时间复杂度,在Hopcroft Karp算法中,我们在增加匹配集合M时,每次寻找多条增广路.可以证明,这样迭代次数最多为2*V^0.5,所以,时间复杂度就降到了O(V^0.5*E). hdoj 2389 Rain on your Parade 阅读全文
posted @ 2010-12-26 17:46 CrazyAC 阅读(4025) 评论(0) 推荐(0)