网络流
Huglight
这个作者很懒,什么都没留下…
展开
-
POJ 3436 ACM Computer Factory 网络流 最大流
题意:给n台机器,每个机器有输入输出规范,还有生产电脑的最大产能,输入规范中描述了每个部件是否是必需的,0表示不需要,1表示必需,2表示都行,输出规范中描述了机器输出的每个零件,0表示不输出该零件,1表示输出该零件。求最大总产能,以及需要连接的机器,及连接机器的产能。思路:用最大流来求,难的主要是图的建模:每个机器当作一个点,由于每个点有最大容量,故可将其拆成两个点,把最大容量放到边上,若机器输...原创 2019-07-29 22:39:13 · 122 阅读 · 0 评论 -
POJ 3281 Dining 最大流
题意:农夫有N头牛,F种食物,D种饮料,每头牛有特定的食物和饮料需求,且每种食物与饮料只能分配给一头牛,求可以满足的牛的最大数目思路:每头牛拆成两个点,边的容量为1,在前面连上食物,后面连上饮料,容量也为1,保证每头牛只能分配到一种食物和一种饮料,在源点与每种食物之间加上容量为1的边,每种饮料与汇点之间加上容量为1的边,若能从源点到达汇点,则表示满足了某头牛的食物与饮料需求,求出到达汇点的最大流...原创 2019-07-30 14:46:33 · 103 阅读 · 0 评论 -
POJ 1087 A Plug for UNIX 最大流
题意:有n个插座,m台设备,每个设备对应一个插头,k个转接器,每个转接器支持某种插座中插某种插头,求不能使用的最小设备数思路:源点与插座相连,设备与汇点相连,容量都为1,每个设备对应的插座与其相连,容量为1,转接器中对应的插座与转换的插头相连,需要注意的是这个容量为无限大。之后用最大流求出可以使用的最多设备数,转换一下即可得出答案#include<iostream>#includ...原创 2019-07-30 16:26:28 · 100 阅读 · 0 评论 -
洛谷P3381 最小费用最大流
题意:最小费用最大流模版,在最大流的基础上加上费用,要求流最大的同时费用最小思路:在EK的基础上将bfs换成spfa,每次求出最短路,在求出的最短路的基础上求最大流#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<vector>...原创 2019-08-05 16:09:48 · 118 阅读 · 0 评论 -
POJ 3422 Kaka's Matrix Travels 最小费用最大流
题意:给一个n*n的矩阵,可以走k次,只能往右或往下走,每次走到一个点取走这个点的数,求取走数的和的最大值思路:要是按照我之前的思路,第一个想到的不是dfs就是dp,谁知道这种题居然可以用网络流来做,建图方式对我这个水平来说可以说是非常牛逼了。由于答案要求最大费用,故可以先把边权取负,求出最小费用,最后再取反。对于每个点拆成两个点,由DP思想,可以选择走这个点或者不走这个点,所以建两条边,一条边...原创 2019-08-05 17:58:16 · 112 阅读 · 0 评论 -
POJ 2135 Farm Tour 最小费用流
题意:给一个无向图,求从起点到终点,和从终点到起点走过的最短路径长度,要求两次走的路径不能重复。思路:在边上加上容量1,费用即为路径长度,在源点和起点,终点和汇点之间加上容量为2,费用为0的边,表示走了两次,之后求最小费用#include<iostream>#include<cstdio>#include<cmath>#include<cstri...原创 2019-08-05 20:26:59 · 101 阅读 · 0 评论 -
Codeforces 1214 D. Treasure Island 网络流
题意:给一个n*m的图,’.‘表示空地,’#'表示障碍,起点为左上角,终点为右下角,只能向下或向右走,求为了使不能从起点走到终点,需要放置的最少障碍数思路:官方题解思路为用两遍dfs,若求出两次相交点数大于2,答案就是2((1,2)和(2,1)处放障碍就行)。实际上这题可以用网络流来解,除了起点和终点外,每个点拆成两个点,容量为1,表示每个点只能被访问一次(若超过1次就可以在这个点放障碍),每个...原创 2019-09-05 22:19:25 · 360 阅读 · 0 评论