![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
凝望_XXW
这个作者很懒,什么都没留下…
展开
-
POJ 1273 Drainage Ditches (最大流 - 裸题)
题目链接:http://poj.org/problem?id=1273 题意:给你m条边,n个点,(0<=m<=200, 2<=n <=200),每条边包含两个端点和其权值,求从点1到点n的最大流。 #include <cstdio> #include <iostream> #include <algorithm> #include &l...原创 2019-01-26 14:54:06 · 164 阅读 · 0 评论 -
POJ 2446 Chessboard 二分图匹配(网络流)
题目链接:http://poj.org/problem?id=2446 题意:给你一个 m*n的棋盘,要你用1×2大小的卡片覆盖它,并且每个方格都只能被一个卡片覆盖。其中k个方格不能放卡片。(0 < m, n <= 32, 0 <= K < m * n) 思路:将这个棋盘想象成国际象棋的黑白相间的棋盘,黑格和其上下左右的四个白格匹配即可建成一个二分图,当然不能放卡片的那几...原创 2019-03-25 20:09:15 · 192 阅读 · 0 评论 -
网络流dinic算法复杂度
Dinic算法的时间复杂度的理论上界是O(N2*M)(N是结点数,M是边数),但实际上Dinic算法比这个理论上界好得多。如果所有边容量均为1,那么时间复杂度是O(min(N0.67,M0.5) * M) ;对于二分图最大匹配这样的特殊图,时间复杂度是O(N0.5 * M)。 ...原创 2019-02-28 17:27:21 · 6605 阅读 · 1 评论 -
「模板」「二分图匹配 => 最大流」飞行员配对方案问题
题目链接:https://www.oj.swust.edu.cn/problem/show/1736 题意: 思路:由题意得为二分图匹配。将S连向1~m,容量为1; 再将m+1 连向 T,容量为1;再将可配对的从1~m连向 m+1~n,容量为无穷大。 如此一来,最大流就等于最大匹配数,在1~m 连向 m+1 ~ n之间的边中,容量减少(或者其反向边容量增大的)的都是 匹配方案里的边。 ...原创 2019-02-28 16:43:50 · 171 阅读 · 0 评论 -
「模板」·[最小割]最小点权覆盖——POJ 2125 Destroying The Graph
题目链接:http://poj.org/problem?id=2125 题意:给你一个n个点m条边的有向带环图,问删除所有的边的最小代价。删边的操作:选择一个点,删掉所有进入该点的有向边,支付wi,或删掉所有从该点出去的边,支付wo。并输出方案。 思路:由题意需要删除所有边,所以为最小点权覆盖。由于删除进入/出去的有向边的代价不同,所以要拆点。将n个点拆称2×n个,变成一个二分图,将原图中从u连...原创 2019-02-23 17:14:21 · 176 阅读 · 0 评论 -
「模板」(多路增广 + 当前弧优化) POJ 2987: Firing(最大权闭合图)
题目链接:http://poj.org/problem?id=2987 题意:一个公司要裁员,裁员可以给公司省下其工资及奖金。开除一个员工时,要把他的下属也开除。一个员工可以属于多个部门,在一个部门中,一个员工的下属可能在另一个部门是他的上司。 补充知识点 闭合图:对于一个有向图G,存在点集合V,任取点u属于V,u的出边的另一个点也属于V,则为闭合图。 理解:任取一起点,终点必定是无出度的点。...原创 2019-02-22 15:36:06 · 145 阅读 · 0 评论 -
(多路增广 + 当前弧优化)网路流 - 最大流 - 优化
网路流 - 最大流 - 优化(多路增广 + 当前弧优化) 裸版: #include&amp;amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;amp;gt; #include&amp;amp;amp;amp;amp;amp;lt;cstring&amp;amp;amp;amp;amp;amp;gt; #include&amp;amp;amp;amp;amp;amp;lt;转载 2019-01-29 15:37:06 · 211 阅读 · 0 评论 -
A - ACM Computer Factory POJ - 3436(网络流 - 最大流 - 拆点)
题目链接:https://vjudge.net/contest/68128#problem/A 算法:最大流 - 拆点 思路:把每台机器拆成两个点,中间用一条边连通,并将容量设为该机器的生成电脑的速度,通过机器的产出零件 和 机器的输入零件 来建边,不同机器之间的边容量设为无穷大。从而转化为最大流问题。输出时,将容量比原来小的且除源点汇点和拆点中的边以及反向边外的边输出即可。 #include &...原创 2019-01-28 15:34:47 · 189 阅读 · 0 评论 -
D - Going Home POJ - 2195 网路流 - 最小费用最大流
D - Going Home POJ - 2195 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <queue> #include <stack&原创 2019-01-28 12:23:16 · 172 阅读 · 0 评论 -
B - Dining POJ - 3281 (网络流 - 最大流 - 拆点建图)(多路增广 + 当前弧优化)
B - Dining POJ - 3281 (网络流 - 最大流 - 建图) 题目链接:https://vjudge.net/contest/68128#problem/B 题意:农场主有n头牛,有一天他做了F种food,D种drink,每头牛都有自己的喜好(food和drink的种类),每种food和drink都只能给一头牛。求如何使满足喜好的牛的数量最大。 思路:建图,即为最大流问题,直接用...原创 2019-01-26 17:18:10 · 291 阅读 · 0 评论 -
POJ 2135 Farm Tour (最小费用最大流)(来回最短路)
题目链接:http://poj.org/problem?id=2135 题意:给你一个无向图,要找出从1号点 到 N号点 的两条不相干的路径的最小总长。 思路:用一个超级源点,连向1号点,长度为0,容量为2。再将N号点连向一个超级汇点,长度为0,容量为2(两条路径)。其他边的话按照原图里的建双向边,cost就是其边长,容量为1(路径之间不相干)。然后直接算最小费用最大流就行了。 #includ...原创 2019-03-26 19:59:01 · 211 阅读 · 0 评论