网络流
ZeroLH00
这个作者很懒,什么都没留下…
展开
-
UVA 11082 Matrix Decompressing
题目大意:对于r行c列的正整数矩阵,设Ai为前i行所有元素之和,Bi为前i列所有元素之和,已知R,C和数组A,B,找出满足条件的矩阵,矩阵元素必须是1~20解题思路:因为元素范围为1~20,所以可以将所有元素减1使得范围变成0~19,并根据Ai,Bi计算出每行,每列的元素和为AAi,BBi 网络流构建:设0为原点s,m+n+1为汇点t,行数为1~m,列数为m+1~m+n 将s与所有行相连,容量为原创 2017-09-13 14:27:14 · 219 阅读 · 0 评论 -
UVA 1658 Admiral
题目大意:给出v个点和e条边的有向带权图,求1~v俩条不相交的路径,使权和最小解题思路:因为要求不相交,所以可以将2~v-1拆成俩个点i,ii,中间连一条容量1费用0的边,然后按照带权图的边将入度全连在i上,出度全连ii上,容量全部为1,费用为权值,将s与1连接,费用0,容量2,v与t连接,费用0,容量2,求最小费用流即可获得答案#include <cstdio>#include <cstring原创 2017-09-13 14:38:16 · 287 阅读 · 0 评论 -
UVA 1515 Pool construction
题目大意:给出一个字符矩阵,其中有草地‘#’和洞‘.’可以将草改成洞花费d,也可以把洞改成草花费f,最后需要在草和洞之间修围栏,费用b,要求用最少的费用,要求第一行/列和最后一行/列必须为草解题思路:先判断边界,如果为‘.’可以先填为‘#’并增加费用,之后构建网络流,做最小割问题,将源点s与所有‘#’相连,容量为d,代表要必须要割掉这条边才能将‘#’变为‘.’同理,将所有‘.’与t相连,容量f,然后原创 2017-09-13 15:01:27 · 282 阅读 · 0 评论 -
UVA 753 A Plug for UNIX
A Plug for UNIX题目大意:有n个插座,m个设备和k种转换器,转换器可以有无数多个,要求插的设备尽量多,问最少剩几个不匹配的设备 解题思路:网络流问题,用0表示源点s,n+m+1表示汇点t,1~n表示设备,n+1~n+m表示插座 将源点s与每个插座相连,容量为1,设备与t相连,容量为1,设备与插座相连,容量INF 求出s-t最大流用总设备数减去就得到最后答案#include <cs原创 2017-09-12 17:13:13 · 281 阅读 · 0 评论