Dinic 算法模板
Dinic算法是一种比较容易实现的,相对比较快的最大流算法。
求最大流的本质,就是不停的寻找增广路径。直到找不到增广路径为止。
对于这个一般性的过程,Dinic算法的优化如下:
(1)Dinic算法首先对图进行一次BFS,然后在BFS生成的层次图中进行多次DFS。
层次图的意思就是,只有在BFS树中深度相差1的节点才是连接的。
这就切断了原有的图中的许多...
分类:
其他好文 时间:
2014-07-31 13:30:26
阅读次数:
342
题目就是问如何用最小的板覆盖所有的草地。可以横着放,也可以竖着放,允许一个草地放多个点。
建图方法就是 每个横向的草地作为X,纵向连续的草地作为Y. X连接Y的边表示, 这里有他们的公共点。。
很显然,覆盖所有草地,就是覆盖所有的边
//tpl
//ipqhjjybj_tpl.h
//header.h
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-31 13:25:56
阅读次数:
207
http://acm.hdu.edu.cn/showproblem.php?pid=4888
添加一个源点与汇点,建图如下:
1. 源点 -> 每一行对应的点,流量限制为该行的和
2. 每一行对应的点 -> 每一列对应的点,流量限制为 K
3. 每一列对应的点 -> 汇点,流量限制为该列的和
求一遍最大流,若最大流与矩阵之和相等,说明有解,否则无解。判断唯一解,是...
1002:Redraw Beautiful Drawings
最大流。。。。用sap+gap优化的模版过的。。。
1. 源点 -> 每一行对应的点,流量限制为该行的和
2. 每一行对应的点 -> 每一列对应的点,流量限制为 K
3. 每一列对应的点 -> 汇点,流量限制为该列的和
跑一遍最大流。
如果流量小于总权值和,那么说明impossible。
如果等于:
构建残图网络,如果残...
分类:
其他好文 时间:
2014-07-31 00:07:05
阅读次数:
301
Ford-Fulkson用EK实现:483ms#include #include #define min(x,y) (x>y?y:x)int pre[105],q[105];int F[105][105];int n,nc,np,m,s,t,all;int MaxFlow(int s, int t)...
分类:
其他好文 时间:
2014-07-30 23:34:05
阅读次数:
961
不容易啊,终于可以补第二个题了!!
顺便说一句:模版写残了就不要怪出题人啊 ~ (这残废模版研究了好长时间才找出错)
题目大意:
有一个n*m的矩阵,每一个格子里都将有一个数。给你每一行数字之和和每一列数字之和。求每一个位置能填0~k之间的哪个数。如果有多种可能输出“Not Unique”,如果没有解输出“Impossible”,如果一组解则将其输出。
解题思路:
最大流...
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4862题意:给你一个n*m的矩阵,填充着0-9的数字,每次能从一个点出发,到它的右边或者下边的点,花费为|x1-x2|+|y1-y2|-1,如果跳跃的起点和终点的数字相同,则获得这个数字的收益,不能走已经走过...
分类:
其他好文 时间:
2014-07-30 20:39:54
阅读次数:
305
http://acm.hdu.edu.cn/showproblem.php?pid=3572题意:给N个任务,M台机器。每个任务有最早才能开始做的时间S,deadline E,和持续工作的时间P。问存不存在可行的工作时间。题解:最大流。主要问题在于建模…… 建模:源点与每一个任务建边,容量为P;.....
分类:
其他好文 时间:
2014-07-30 20:37:54
阅读次数:
248
nx个挤奶器,ny头奶牛,每个挤奶器最多能供m头奶牛使用。
现给出nx+ny之间的距离矩阵,求使得全部奶牛都到某个挤奶器挤奶所走的路程中,单个奶牛所走的最大路程的最小值。
开始感觉这个类似二分图匹配,不同之处在于挤奶器可以连接m个以内的奶牛,用网络流的模型是可以求出满足条件的解的。
问题是如何满足最大路程的最小值,这一种典型的二分的问法。。
所以我们二分答案,也就是枚举最大路程...
分类:
其他好文 时间:
2014-07-30 17:29:24
阅读次数:
200
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4888题意:给一个n*m的矩阵的n行之和和m列之和以及限制k,使用0-k的数字填充矩阵使得其行与列之和为给定值如果不行则输出Impossible如果有多解则输出Not Unique如果有一解则输出Unique...