
网络流
三水木人
这个作者很懒,什么都没留下…
展开
-
USACO Training Section 5.4-Telecowmunication 奶牛的电信【最小割边集字典序最小】woj1791
题意n个点m条边的无向图,问最少破坏多少个点可以使得S,T不连通,按字典序最小输出方案解法对于第一个问,显然的一个拆点技巧,将一个点i拆分为2个点i,i’,i->i’,容量为1原图的边<u,v>,容量设为inf,因为每个点拆分为2个点,所以建边<u’ ,v ,inf>,<v’ , u ,inf>然后求出最大流即最小割对于第二问,因为最大流后求出原创 2018-12-26 14:34:41 · 211 阅读 · 0 评论 -
「网络流 24 题」方格取数【二分图点权最大独立集】woj2625
题意在一个有 m×n个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意 2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。问题分析二分图点权最大独立集,转化为最小割模型,从而用最大流解决。建模方法首先把棋盘黑白染色,使相邻格子颜色不同,所有黑色格子看做二分图X集合中顶点,白色格子看做Y集合顶点,建立附加源S汇T。1、从S向X集合中每个顶点连...原创 2018-12-26 17:03:06 · 196 阅读 · 0 评论 -
NOIP2008传纸条-【DP/费用流】
题意在一个矩形上求两条不相交的价值最大的路径做法一:DP常规dp题,略过做法二:最大费用最大流这道题可以作为费用流入门题,可以很好理解费用流的用途建模过程:1、找出方案可行:考虑最大流建图方法首先因为要找不想交的两条路径,我们可以限制每个点只被选择一次,对于点的限制一般是拆点的套路。将一个点i拆分为2个点,i和i’并且连边权为1,这样就可以限制这个点只被选择一次,不过源点和汇点(...原创 2018-12-27 16:38:02 · 275 阅读 · 0 评论 -
[BZOJ1283]序列-【费用流】
题意给出一个长度为的正整数序列Ci,求一个子序列,使得原序列中任意长度为的子串中被选出的元素不超过K(K,M<=100)个,并且选出的元素之和最大。分析利用最大流代表一个可行方案,考虑如下建图:建立源、汇S,T。对序列每个元素建一个点aiS向a1连一条容量为k的边,费用为0Ai向ai+1连一条容量为k,费用为0(表示不选ai到a_(i+1))An向T连一条容量为k,费用为0A...原创 2018-12-27 17:00:23 · 244 阅读 · 0 评论 -
「网络流 24 题」餐巾计划【最小费用最大流】
题意一个餐厅在相继的 n 天里,每天需用的餐巾数不尽相同。假设第 i天需要 ri 块餐巾。餐厅可以购买新的餐巾,每块餐巾的费用为 P 分;或者把旧餐巾送到快洗部,洗一块需 M 天,其费用为 F 分;或者送到慢洗部,洗一块需 N 天,其费用为 S 分(S< F )。每天结束时,餐厅必须决定将多少块脏的餐巾送到快洗部,多少块餐巾送到慢洗部,以及多少块保存起来延期送洗。但是每天洗好的餐巾和购...原创 2018-12-27 17:16:32 · 303 阅读 · 0 评论 -
POJ 3204 Road Reconstruction-网络流-最小割边集
题意一个由n个点,m条边构 成的有向图,每条边都有一定的流量。现在求存在多少条边,在增加这些边的流量后从1点到n的总流量会增加。分析先求最大流。在得到最大流f后的残量网络G_f中,从s开始DFS,所有能遍历到的点构成点集S。没有搜索到的构成点集T,两集合间的边构成最小割边集。注意:虽然 最小割[S,T]的边都是满流边,但是满流边不一定是最小割边集。如下面的二分图的例子图(a)给出了一...原创 2018-12-26 12:58:48 · 404 阅读 · 0 评论 -
bzoj1458-wo4263 士兵占领【最大流】
题意有一个M * N的棋盘,有的格子是障碍。现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵。我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵。现在你的任务是要求使用最少个数的士兵来占领整个棋盘。建图每一行建立Ai,与源点S连接,容量为ri每一列建立Bi,与汇点连,容量为ci第i行第j列可以放士兵,Ai-&amp;...原创 2018-12-26 13:02:34 · 208 阅读 · 0 评论 -
[USACO07OPEN]吃饭Dining-woj2351【最大流】
题意农夫JOHN为牛们做了很好的食品,但是牛吃饭很挑食. 每一头牛只喜欢吃一些食品和饮料而别的一概不吃.虽然他不一定能把所有牛喂饱,他还是想让尽可能多的牛吃到他们喜欢的食品和饮料.农夫JOHN做了F (1 <= F <= 100) 种食品并准备了D (1 <= D <= 100) 种饮料. 他的N (1 <= N <= 100)头牛都以决定了是否愿意吃某种食...原创 2018-12-26 13:05:52 · 214 阅读 · 0 评论 -
ZOJ2587 Unique Attack 【最小割的唯一性判定】
题意给定一个无向图,要求判定分离两个点的最小割是否唯一。解法在求出最大流的后,在残余网络中,从源点进行一次搜索,搜索按照未饱和的边进行,得到顶点子集S的顶点个数;再从汇点反向搜索未饱和的边,得到子集T的顶点个数,判定顶点数相加是否等于总共的顶点数。如果能到所有顶点,则是唯一的,否则不是唯一参考代码#include<iostream>#include<vector&g...原创 2018-12-26 13:27:31 · 354 阅读 · 0 评论