我们知道,增广路EK算法的时间负责度是O(n*m^2),找最短增广路的时间复杂度是O(m*n),所以时间复杂度主要是在找增广路上。
这里介绍另一种Dinci算法,用BFS构造层次图,然后用DFS增广。
模板
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#d...
分类:
其他好文 时间:
2014-07-30 14:49:03
阅读次数:
364
好难好难,将行列当成X和Y,源汇点连接各自的X,Y集,容量为行列的和,相当于从源点流向每一行,然后分配流量给每一列,最后流入汇点,这样执意要判断最后是否满流,就知道有没有解,而解就是每一行流向每一列多少流量。
关键在于怎么判断多解的情况。我想不到啊T_T
题解说,找到一个长度大于2的环。
想了一想,也就是找到还有剩余流量的环,如果找到了,我就可以把其中一条边的流量转移,因为是一个环,所以它又...
求从电站->调度站->消费者的最大流,给出一些边上的容量,和电站和消费者可以输入和输出的最大量。
添加一个超级源点和汇点,建边跑模板就可以了。两个模板逗可以。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f...
分类:
Web程序 时间:
2014-07-30 12:19:33
阅读次数:
270
有m个猪圈,给出初始时每个猪圈里有几头猪,有n个顾客,每个顾客可能在某k个猪圈里买猪,总共要买a头。
顾客依次买猪,每次买完后,猪圈主人可以把猪圈里的猪转移到别的猪圈。每个猪圈的容量是无限大的。
问一天最多能卖多少猪。
整体读下来可以知道,要卖更多的猪,就要在每个顾客买之前,把尽量多的猪转移到下一个顾客要可以买的k个猪圈里。
也就是一个最大流问题。
把相邻两个顾客所选的猪圈之间建...
分类:
其他好文 时间:
2014-07-30 12:16:53
阅读次数:
212
14多校第二题
网络流 分别以行,列作为结点建图
i行表示的结点到j列表示的结点的流量便是(i, j)的值
跑遍最大流 若满流了便是有解 判断是否unique 就是在残余网络中dfs,走可以增加流量的边,找到环即不唯一
dfs的时候一定要回溯!!。。。
#include
#include
#include
#include
#include
#includ...
题意:根据题意建立模型:给一幅混合图,有些带边,求选取一些边,使得权值最大,而且保证每个点入度和出度都最多是1.
开始的时候题意理解出错。思路:件二分图,最大权匹配,但是可以不是所有点都参与匹配,(都参与未必最大。因此,在费用流法基础上:每个X部点向汇点也有边即可。这样保证最大流为n,而且未必所有点都匹配。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-30 01:05:12
阅读次数:
285
费用流即最小费用最大流先贴上粉书上的模板:struct Edge{ int from,to,cap,flow,cost; Edge(int u,int v,int c,int f,int w): from(u),to(v),cap(c),flow(f),co...
分类:
其他好文 时间:
2014-07-30 00:27:02
阅读次数:
289
题意:给你n条边,目标位置t;接下来是每条边,包括起点,终点,容量;
感想:第一道最大流的代码,这道题是我更深地理解了Ek算法,不过这道题有个超坑的情况,那就是出现重边的情况==!
思路:EK算法
AC代码:
#include
#include
#include
#include
using namespace std;
#define INF 100000000
#define N 20...
分类:
其他好文 时间:
2014-07-29 15:07:38
阅读次数:
230
题意:我就直接给出题目要求的东西吧:
在一个网络图中有n个点,其中有np个发电站,nc个用户,m条电线;每个发电站,用户,和电线都对应有一个最大的电流;让求出该网络中最大的电流;
添加一个源点为(0)和一个汇点(n+1),源点与发电站相连,电流量为发电站的最大电流;用户与汇点相连,电流量为用户需要的最大电流。
思路:最大流的一个简单变形,只要处理好题目给定的数据,直接套用模板就O...
分类:
Web程序 时间:
2014-07-29 14:56:58
阅读次数:
271
解题报告
题目传送门
题意:
N个士兵,M个武器,每个士兵能接受的武器重量范围是[minw,maxw]
思路:
本来以为二分图可以的,(看错数据范围了,,,)贪心好像可以。
scf说网络流可以缩点。
建图方式:源点和士兵连一条线,每个士兵与[1,1000]的武器重量连边,[1,1000]与汇点连线,容量是武器i的数量
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-07-29 14:43:28
阅读次数:
268