ACM 网络流解题报告
文章平均质量分 79
New_C_YUER
这个作者很懒,什么都没留下…
展开
-
poj 1637 zoj 1992
经典的混合欧拉回路问题。 这道题是黑书里面的例题,刚开始见到它时很快就想到了用网络流,但网络流接触得少,一直在构图上没有突破。后来查看了黑书,不过黑书上讲解得比较复杂,看完了还是构不出图— —|||最后只能上网找讲解,嗯,牛人的讲解就是中要害,马上理解很快就2Y了。 这里是摘录牛人的解法:判断一个图中是否存在欧拉回路(每条边恰好只走一次,并能回到出发点的路径),在以下三种情况中有三种不同的算法: 一、无向图每个顶点的度数都是偶数,则存在欧拉回路。二、有向图(所有边都是单向的)每个节顶点的入度原创 2011-04-08 01:05:00 · 881 阅读 · 0 评论 -
二分图最大多重匹配(poj 2289,poj 1698)
题目意思就不解释了,实际上是求二分图的最大多重匹配,这里有个比较好的定义和总结,可以看看:http://www.cppblog.com/MatoNo1/archive/2011/03/26/142766.aspx 个人理解,就是二分图中的两部分图X和Y,若要找出其中的匹配且使得结点数较多的那部分B中,每个结点均有相匹配的点在另外一部分图A中,此时A中必存在点其与多条匹配边相关联。此时可以匈牙利算法解决这种二分图多重匹配问题,即求出点与匹配边的最大关联数(或者是找出一个点,使得它在多重匹配中相原创 2011-04-13 00:44:00 · 1488 阅读 · 0 评论 -
二分图最优多重匹配(poj 2112)
<br /> 题目意思是找出奶牛到挤奶机的所有最短距离中的最大值,且挤奶机的容量有限制。这里的做法是寻找二分图的最优多重匹配,要求匹配的权值最小,用floyd+二分枚举最短距离的最大值+最大流验证存在性来做。至于二分图的最优多重匹配的相关知识可以看我的上一个blog,里面有个链接。<br /> <br /> 以下是代码:<br /> #include<cstdio><br />#include<cstring><br />#include<queue><br />using namesp原创 2011-04-22 00:37:00 · 1170 阅读 · 0 评论 -
poj 2455
题目要求找出网络中从给定起点到终点的不少于t条的路径,使得路径中相邻结点间的最长路最短。 一般的,解决多结点间的多重最值问题,尤其是最短路中的最长路等问题,都要使用网络流做模型,利用最大流来判断方案的存在性,而其中的最值问题则可能会使用最短路算法或者是贪心,poj2391就用到了最短路,而本题则是用到了“贪心”,即必须先对所有的路按其长度递增排序。然后二分,取标号在mid之前的所有路建图,每条边的容量均为1,求最大流,若最大流的大于等于t,则标号为mid的边的权值即为所求。 一开原创 2011-04-24 09:53:00 · 1397 阅读 · 0 评论 -
poj 3281
网络流的构图题。构图时设立超级源点和超级汇点。源点与每个食物连一条容量为1的边,汇点与每个饮料连一条容量为1的边。牛要拆点,入点与对应的食物连容量为1的边,出点和对应的饮料连一条容量为1的边。入点和出点间连一条容量的边。这样才能充分利用限制条件。最后求一次最大流即可。 构图题往往难度不大,只要充分利用已知的限制条件构造出图,套个模版即可。 以下是代码:#include#include#includeusing namespace std;const int M=1000100原创 2011-04-25 00:39:00 · 1175 阅读 · 0 评论 -
poj 1149
又是一个网络流的构图题。不是那么容易就想得到的,尤其是没有接触到很多网络流题目时。构图时由于人的数目较少,因此就只用人做结点。对于每一个猪舍的钥匙,若是第一次出现,则源点与该人连接一条边,容量为该猪舍的初始猪的数目,否则,当前人与前一个有此钥匙的人连一条边,容量无穷大。最后每一个人和汇点连一条边,容量为是他想买的猪的数目,最后,求一次最大流即可。 以下是代码:#include#includeusingnamespace std;constint M=10000;constint N=120原创 2011-04-27 00:29:00 · 535 阅读 · 0 评论 -
poj 3469
<br /> 题目意思是第i个moduel在两个核的运行时间分别为ai、bi,两个modue之间的数据交换要有花费。可以将其建成一个网络流模型,源点和汇点分别是两个核,记为0,n+1,然后建图,求最小割即可。<br /> 网络流类的题目的难点集中在建图上,只要理解原创 2011-03-30 13:45:00 · 1729 阅读 · 0 评论 -
hdu 3667
题目意思是给定一个图,求从起点送货物到终点的最小花费。 典型的最小费用流题目。不过由于花费的计算方法是a*x*x,因此必须拆边,使得最小费用流模板可用,即变成a*x的形式。由于是平方式,有1=1,4=1+3,9=1+3+5.。。。因此拆边的方法为做一个循环,第i次原创 2011-09-27 18:56:33 · 763 阅读 · 0 评论