网络流模型总结

无向图网络流

建图时直接把反向边的出事容量设为与正向边相同即可。

最大权闭合子图

选出一个点集,使得它们的后继节点都在这个点集中,使这个点集尽可能地大。

解法:

源点向点权>=0的点连边,容量=点权。

源点向点权<0的点连边,容量=abs(点权)。

点权>=0的点向点权<=0的点连边,容量=inf。

ans=正点权之和-最小割。

思维过程:

先把所有点权>=0的点取上,去从中删除一些不优的。

一个点权>=0的点如果要取,那么必然所有和他相连的点权<=0的点都必须取。

把这个强制要取的过程转化成在网络图上强制他们不连通,必须要把<=0的点给割掉,割掉的代价就是这个负点权。

如果这个点权>=0的点不取,那么就在网络图上体现为把它割掉,不去影响与它相连的负点权的取舍,割掉后总收益减少量就是它的点权。

综上,由于我们显然要最小化这个减去的代价,所以可以用最小割来求解

原文地址:https://www.cnblogs.com/Creed-qwq/p/10085371.html

时间: 2024-10-30 20:24:55

网络流模型总结的相关文章

一类判定性问题的网络流模型的构建

一般我们的最大流算法解决的是最优化问题.即通过某种构图方法,使得最大流的流量即为我们所要求的的最大值. 但是,一类判定性问题也需要通过网络流模型来解决. 经典的问题有:混合图的欧拉回路,等等. 这类问题往往通过构建一个网络图,计算出其最大流,然后根据判断最大流是否满足某种条件来判断.当然,二分答案的时候也可能会用到这种方法. (完)

一些简单的网络流模型

一.最大权闭合图 对于一个图(V, E)由点集V和一些有向边集E组成,每个点有一定权值,对于一个合法子集,若有一条有向边(u,v)并且u在子集中,则v也必须在子集中,求子集中所有元素权值和最大的子集 分析:考虑每个点有两种状况,选和不选,所以考虑最小割,但是要求最大费用: 先假设取了所有正权点,从原点向所有正权点连边,从所有负权点向汇点连边,容量为权值的绝对值, 对于一个割[S,T](S内的点表示选择了的点), 正权点在S内,表示选了这个点,与S相连的边没有被割,若在T内,表示这个点被割则被割,

上下界网络流模型常见解法

一.无源汇可行流 1.设立虚拟源汇S.T,IN[i]记录i点流入下限的总和,OUT[i]记录i点流出下限总和 2.两点间连容量为上限-下限的边 3.sum=0,遍历所有点i,f=IN[i]-OUT[i].如果f>0,sum+=f,add(S,i,f):否则,add(i,T,-f) 4.如果S到T的最大流等于sum,则存在可行流,反之不存在 例题 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2314 n个点,m条边,每条

网络流(进阶)

最大流:DINIC or SAP 最小费用最大流:SPFA+增广(费用的值较离散) or ZKW(费用的值集中) 有源汇的上下界最大流:新建s', t',用(i, j, l, r)表示i到j有一条下界为l上界为r的边,将每条这样的边拆成(s', j, 0, l), (i, t', 0, l), (i, j, 0, r-l),加入边(t, s, 0, max)再从s'到t'求最大流,再去掉(t, s, 0, max)这条边,从s到t求最大流 有源汇的上下界最小可行流:基本同上,将最后一步改成从t到

[转] 一些图论、网络流入门题总结、汇总

最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础)http://ac

【转】一些图论、网络流入门题总结、汇总

最短路问题 此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等) http://acm.pku.edu.cn/JudgeOnline/problem?id=2449 题意:经典问题:K短路 解法:dijkstra+A*(rec),方法很多 相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144 该题亦放在搜索推荐题中 POJ 3013 - Big Christmas Tree(基础) ht

UVa 11082 Matrix Decompressing (网络流)

链接:http://acm.hust.edu.cn/vjudge/problem/36866题意:对于一个R行C列的正整数矩阵(1≤R,C≤20),设Ai为前i行所有元素之和,Bi为前i列所有元素之和.已知R,C和数组A和B,找一个满足条件的矩阵.矩阵中的元素必须是1~20之间的正整数.输入保证有解.分析:这道题主要还是考查建模能力.如何把一个矩阵模型转化成网络流模型是关键之处.首先注意到矩阵任意行或列的元素之和是不变的(设第i行元素之和为Ai′,第i列元素之和为Bi′),因此想到把矩阵的每行和

数据结构之网络流入门(Network Flow)简单小节

网络流的相关定义: 源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点. 汇点:另一个点也很特殊,只进不出,叫做汇点. 容量和流量:每条有向边上有两个量,容量和流量,从i到j的容量通常用c[i,j]表示,流量则通常是f[i,j]. 通常可以把这些边想象成道路,流量就是这条道路的车流量,容量就是道路可承受的最大的车流量.很显然的,流量<=容量.而对于每个不是源点和汇点的点来说,可以类比的想象成没有存储功能的货物的中转站,所有“进入”他们的流量和等于所有从他本身“出去”的流量. 最大流

计蒜客2016复赛 菜鸟物流的运输网络 网络流EK

题源:https://nanti.jisuanke.com/t/11215 分析:这题是一个比较经典的网络流模型.把中间节点当做源,两端节点当做汇,对节点进行拆点,做一个流量为 22 的流即可. 吐槽:这是官方题解,然后其实赛场上谢了这个解法,但是我写搓了,因为最后输出路径的时候傻逼了 我居然向最短路一样记录前驱输出路径,简直傻逼了 着重强调(对我自己):网络流的一次增广是需要记录前驱的,但是多次增广以后,可以反向流,前驱就不对了 所以要判断哪些边,在最大流上时,需要枚举边,看哪个满流,然后随便