![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络最大流/最小割
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
一种更高效的费用流算法——zkw费用流
orz原创者zkw%%% 送上zkw神犇的blog原址:传送门费用流建立在网络最大流的基础上,一张图中最大流有且仅有一个,但是最大流条数往往不止一条,这时候对于我们来说,可能要找出这些最大流中最小(或者最大)的那一条路径(贪心策略嘛),这就是最小(最大)费用最大流 ——以上就是定义嘛我们求费用流的算法也是非常多的,目前最流行的就是Edmond-Karp经过修改过后的费用流算法了,这个我就不多说了原创 2017-06-12 16:15:27 · 18630 阅读 · 9 评论 -
二分图匹配——BZOJ1059/Luogu1129 [ZJOI2007]矩阵游戏
http://www.lydsy.com/JudgeOnline/problem.php?id=1059 https://www.luogu.org/problem/show?pid=1129 我们可以很快的把这题转化成二分图匹配 具体我不多说了。。。 然后直接上模板(我发现我以前写的是假的dinic) 具体见前一篇飞行员匹配:http://blog.csdn.net/jzq233jzq/原创 2017-04-03 21:48:08 · 291 阅读 · 0 评论 -
最小割——BZOJ1001 [BeiJing2006]狼抓兔子
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 啊我还能说什么。。。 dinic网络流直接过了 那个建无向边时两个方向都建边权大小,这个我一开始没注意。。。 也没怎么深究那个转成最短路的东西 其实啊,转成最短路估计比直接暴力打网络流要简单吧。。。#include<bits/stdc++.h>using namespace std;原创 2017-04-11 20:25:04 · 382 阅读 · 0 评论 -
二分图匹配——Luogu3033 [USACO11NOV]牛的障碍Cow Steeplechase
题面:Luogu3033 我们把横着的线段分一组,竖着的线段分一组 然后把相交的线段连边即可 这样就形成了一个二分图 然后要说一下两个东西:二分图最小点覆盖:定义一个点能够覆盖以之为端点的所有边,定义点覆盖为覆盖图所有边的点集,最小点覆盖即为包含点数尽量少的点集。二分图最大独立集:独立集是两两没有公共边的点集,最大独立集即为点数尽量多的独立集。很明显这题要求的是二分图的最大独立集原创 2017-05-22 16:11:03 · 254 阅读 · 0 评论 -
最小割——BZOJ1412/Luogu2598 [ZJOI2009]狼和羊的故事
题面:Luogu2598 BZOJ1412 一个神奇的网络流 我们把狼和羊分开处理,从源点s向狼窝各连一条流量为INF的边 从羊圈向汇点t各连一条流量为INF的边 然后中间点的连边遵循以下条件邻居是狼不连边自己是羊不连边其他所有情况都连一条流量为1的边为什么呢,自己yy一下很快就知道了 然后直接跑最小割就好啦#include<cstdio>#include<cstring>#i原创 2017-05-23 09:52:09 · 216 阅读 · 0 评论 -
最大流——Luogu2762 [网络流24题]太空飞行计划问题
题面:Luogu2762 网络流24题之二最大权闭合子图 ,首先建图 我们先从源点向每个实验连上权值为实验收益的边,再从每个器材向汇点权值为配置费用的边 然后每对配对方案连一条权值为INF的边 跑最小割即可,答案就是实验收益总和-最大流 具体证明不证了 两个比较容易炸的地方:读入:挺恶心的因为并没有告诉你到底配对的方案数有多少,请不要使用类似读入优化的读入方式(我试过好像这对于换行符不敏感。。。)原创 2017-05-25 10:21:29 · 289 阅读 · 0 评论 -
费用流——BZOJ1877/Luogu2153 [SDOI2009]晨跑
题面:BZOJ1877 Luogu2153 把每个点拆成两个点(起点和终点不用拆) 给你的连边E{x,y,z}从x的第一个点连到y的第二个点(流1费z),然后每个点的第二个点连向第一个点(流1费0),这样就可以保证每个点只经过一次了 然后起点1开始跑最小费用最大流,到终点n,第一个天数的答案就是最大流,最短路就是最小费用#include <cstdio>#include <algorithm原创 2017-06-12 20:15:42 · 240 阅读 · 0 评论 -
最大流——BZOJ1189/Luogu3191 [HNOI2007]紧急疏散evacuate
题面:BZOJ1189 Luogu3191 首先我们预处理出每个空地到每扇门的最短时间 然后我们二分时间t,然后把每扇门拆成t个点 接下来建图:超级原点->每块空地(流1),每扇门的每一个时刻->超级汇点(流1) 然后对于每块空地,枚举能够在t时间内到达的门,连上边(流1,空地->门(对应的最短时间那个时刻点)) 然后等待的问题只要每扇门的某一时刻点向下一时刻点连上就行了(流INF) 然原创 2017-06-13 13:57:33 · 308 阅读 · 0 评论 -
二分图匹配——BZOJ1433/Luogu2055 [ZJOI2009]假期的宿舍
BZOJ传送门 洛谷传送门 这个题预处理好麻烦啊。。。题面也很绕 先说预处理吧,我们首先转成图,也就是把人和床分开变成二分图 具体怎么处理输入呢? 首先在校不回家的学生向自己的床连一条边, 然后所有人向认识的人里面有床的人的床连边 注意回家的学生要忽略。。。 最后每张床连向超级汇点,超级原点向每个在学校的人(包括学生和朋友)连边 然后就跑二分图匹配啦~原创 2017-04-25 10:14:36 · 409 阅读 · 0 评论 -
Floyd+最大流——Luogu2402 奶牛隐藏
题面:Luogu2402 二分+最大流 看到这种题嘛直接做啊,首先Floyd求出两两之间最短路,然后我们考虑二分这个时间TT,接着建图 这个图啊首先把每个点拆成牛和棚,超级源点ss向每个点的牛连流量为牛数的边,每个点的棚向超级汇点tt连流量为容纳数的边,最后考虑牛到棚的边,如果点ii的牛到点jj的棚最短路<=T<=T,那么就连一条流量无限的边 最后用最大流判断一下流量是否是奶牛数就好了#in原创 2017-08-03 19:21:04 · 187 阅读 · 0 评论 -
二分图匹配——Luogu2756 [网络流24题]飞行员配对方案问题
https://www.luogu.org/problem/show?pid=2756 二分图匹配的裸题 不过我不会匈牙利算法。。。。 于是我打了个dinic最大流过掉了 具体做法就是设一个超原点和一个超汇点, 然后超原点与每一位外籍飞行员连一条流量为1的边 超汇点与每一位英国飞行员连一条流量为1的边 然后跑一遍最大流就好了。。。记录方案我卡了很久 在此感谢lzq大佬指教(woc把我原创 2017-03-20 10:49:07 · 367 阅读 · 0 评论