网络流-最大流
Dave_L
这个作者很懒,什么都没留下…
展开
-
图论专题-网络流
思路: 构图:i 和 j 公用元素k[i][j],把数组A[i] , B[j]分别看成节点,那么A[i]可以流向B[j]大小最多为k[i][j],最少1的流量,但是网络流中最小流量为0,所以每行的和减去m,每列的和减去n,(每个元素减1).源点连A[i],容量为A[i],B[j]连汇点,容量为B[j],A[i] , B[j]连容量19的边。跑网络流,如果到汇点的和 == 矩阵的和,那么存在结...原创 2018-05-29 11:44:36 · 646 阅读 · 1 评论 -
洛谷P2774 方格取数问题 网络流之最小割 (最大和=全局和-舍弃和,舍弃和=最小割=最大流。)
P2774思路:将m*n方格转化成黑白相间的方格,取白色的格子则不能取四周的黑色格子,但是能够取别处的黑色格子。根据 最大和=全局和-舍弃和 ,我们对相邻的黑白建边,由舍弃和=最小割=最大流,我们跑一边Dinic求出s->黑->白->t 的最小割,减去就是答案。Code:#include <bits/stdc++.h>#define LL long lo...原创 2018-10-21 22:01:04 · 190 阅读 · 0 评论 -
洛谷P4016 负载平衡问题 网络流之最大流最小费用流
P4016思路:因为是每个仓库货物相等,那么最后肯定是总和/个数(平均值ave)。建图:源点s,汇点t。如果i仓库货物大于平均值,那么表示需要流出,所以:i -&gt; t 流量为a[i] - ave , 花费0.如果i仓库货物小于平均值,那么表示需要汇入,所以:s-&gt; i流量ave-a[i] , 花费0.另外,相邻仓库可以相互运输.建边 i -&gt; i + 1 , ...原创 2018-10-23 15:16:37 · 176 阅读 · 0 评论 -
网络流之最小割hihocoder116,最小割==最大流,点属于的割集,最小割性质,关键割边,最小割边
点属于的割集:必在S割集的点: 所有由S开始bfs到达的点必在T割集的点: 所有由T开始bfs到达的点求一组最小割边:从S开始dfs,标记为true,对于一条边,如果一端为true,另一端为false,那么这条边就属于割边。关键割边:1.对于该边如果该边容量增加,那么网络的总流量增加。2.在最大流后的残量网络中,从S开始dfs标记点属于S集合,从T反向dfs标记属于T集合,如果一个边...原创 2018-10-21 11:42:13 · 354 阅读 · 0 评论 -
P1251 餐巾计划问题 网络流之最小费用流
P1251因为是一天中有不同的事务,现将一天拆点为晚上i 和早上i+N。流向i的流是脏毛巾,流向早上的为干净毛巾。建图:设一源点s,汇点t。s - &gt; i 流量x,花费0. 表示到晚上有x条脏毛巾产生。i + N -&gt; t ,流量 x , 花费0 .表示每天早上向汇点提供x条干净毛巾,如果满流,则此天的毛巾够用。i -&gt; i + 1 . 流量INF , 花费0 。...原创 2018-10-23 08:35:47 · 237 阅读 · 1 评论 -
最小费用最大流模板,洛谷P3381
最小费用最大流就是采用贪心的思想,每次按照最小费用的路线进行增广。以单位流量的费用为每条边的花费,SPFA寻找s到t的最短路进行增广。P3381Code:#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;const int AX = 5e4 + 666 ;struct Node{ int...原创 2018-10-23 08:27:55 · 192 阅读 · 0 评论 -
洛谷P2765 魔术球问题 网络流之最小路径覆盖 || 贪心
P2756P2756思路:k根柱子相当于k条路径覆盖,求最多能放n个球的n的大小。根据每个球相邻球必须相加为平方数可以建边,然后由:最小路径覆盖 = n - 最大二分匹配,可以枚举n,也可以二分查找(因为球数n随柱子k的增大是单调不递减的)。这样可以得到球数n的大小。然后输出每条简单路,和求最小路径覆盖一样,每次增广成功记录连接的点就行了。Code:#include &lt;bit...原创 2018-10-20 17:30:56 · 257 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 D A*算法 F 有上下界的网络流 G分解质因数+公式 容斥 I 模拟 K讨论
D 题意:找是否存在第k短路且判断长度是否小于等于T。 思路:A*算法裸题。#include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;#define INF 0x3f3f3f3fusing namespace std;const int AX = 1e5+66;const int MAXN = 1e4+66;int n , m , k;int s ,t ;int tot...原创 2018-09-09 09:44:45 · 477 阅读 · 1 评论 -
网络流 二分图匹配,最小路径覆盖
洛谷2756飞行员配对思路:二分图最大匹配。构图:s -> i , i -> j j -> t 均为1.Code:#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;const int AX = 1e3 + 6 ;int m , n ; int s , t ;...原创 2018-09-18 19:59:35 · 185 阅读 · 0 评论 -
(待完善)网络流-无源汇有上下界可行流+例题:ZOJ2314 有源汇有上下界可行流+ 例题BOJ2396
无源汇:无源汇有上下界可行流构图模型:设置虚拟源点ss , 虚拟汇点tt,先建好残流网络,记录每个点的入流和出流,如果入流大于出流,则需要给多余的入流增加一个来路,ss流入i,反之,给多余的出流多一个去路,i流入tt。然后用dinic算法对ss到tt跑一遍最大流。ZOJ2314题意:给出n个节点和m条管子,每根管子都是用来流液体的,连接管子的叫节点,水管的流向是单项的,没有管子会只连接...原创 2018-09-18 09:00:06 · 237 阅读 · 0 评论 -
网路流练习-51nod2006 飞行员配对(二分图最大匹配)
2006 飞行员配对(二分图最大匹配) 题目来源: 网络流24题 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以与其他...原创 2018-05-29 11:47:04 · 301 阅读 · 0 评论 -
洛谷P1231 教辅的组成 网络流简单拆点
P1231建图:因为一本书只能用一次,所以将书拆点为1 , 2s -> 练习册 - > 书1 - > 书2 -> 答案 - > t流量都为1Code:#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;const int AX = 6e5 + 66 ; co...原创 2018-12-07 17:39:42 · 219 阅读 · 0 评论