network flows
文章平均质量分 76
wust_tanyao
这个作者很懒,什么都没留下…
展开
-
poj3469 Dual Core CPU --- 最小割
一个CPU有两个核,要把n个模块放在其中一个核上,给出放在不同核上的花费。另给出m对模块,若不放在同一模块则会产生额外花费。求最小花费。对于每一个模块可以选择核1,核2,和相连的模块。据此建边,核1为源点,核2为汇点,相连的模块之间建双向边,边权均为花费。求最小割即可。#include #include #include #include #includ原创 2014-08-01 08:18:45 · 720 阅读 · 0 评论 -
poj1459 Power Network --- 最大流 EK/dinic
求从电站->调度站->消费者的最大流,给出一些边上的容量,和电站和消费者可以输入和输出的最大量。添加一个超级源点和汇点,建边跑模板就可以了。两个模板逗可以。#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f原创 2014-07-30 11:03:03 · 681 阅读 · 0 评论 -
poj1149 PIGS --- 最大流EK
有m个猪圈,给出初始时每个猪圈里有几头猪,有n个顾客,每个顾客可能在某k个猪圈里买猪,总共要买a头。顾客依次买猪,每次买完后,猪圈主人可以把猪圈里的猪转移到别的猪圈。每个猪圈的容量是无限大的。问一天最多能卖多少猪。整体读下来可以知道,要卖更多的猪,就要在每个顾客买之前,把尽量多的猪转移到下一个顾客要可以买的k个猪圈里。也就是一个最大流问题。把相邻两个顾客所选的猪圈之间建原创 2014-07-30 11:25:06 · 661 阅读 · 0 评论 -
poj3308 Paratroopers --- 最小点权覆盖->最小割
题目是一个很明显的二分图带权匹配模型,添加源点到nx建边,ny到汇点建边,(nx,ny)=inf建边,求最小割既得最小点权覆盖。在本题中由于求的是乘积,所以先全部取log转换为加法,最后再乘方回来。#include #include #include #include #include #include #include #include #include原创 2014-07-31 08:05:49 · 800 阅读 · 0 评论 -
zoj2314 Reactor Cooling --- 上下界可行流
题目给出了每条边的上下界,此类题目的建边方法是:1、添加源点汇点,2、对每条边 添加边 c(u,v) = up(u,v) - low(u,v)3、对每个点 c(s,v) = out(v) c(v,t) = in(v) (权值为正)求s到t的最大流,若最大流等于所有边下界的和,则存在可行流,每条边的流量为 flow原创 2014-08-03 11:34:07 · 1004 阅读 · 0 评论 -
hdu3472 HS BDC --- 混合图欧拉回路
讲的很好的资料:点击打开链接点击打开链接#include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f#pragma comment(linker, "/STACK:16777216")#d原创 2014-08-21 09:31:18 · 876 阅读 · 0 评论 -
poj2112 Optimal Milking --- 最大流,二分
nx个挤奶器,ny头奶牛,每个挤奶器最多能供m头奶牛使用。现给出nx+ny之间的距离矩阵,求使得全部奶牛都到某个挤奶器挤奶所走的路程中,单个奶牛所走的最大路程的最小值。开始感觉这个类似二分图匹配,不同之处在于挤奶器可以连接m个以内的奶牛,用网络流的模型是可以求出满足条件的解的。问题是如何满足最大路程的最小值,这一种典型的二分的问法。。所以我们二分答案,也就是枚举最大路程原创 2014-07-30 16:46:11 · 720 阅读 · 0 评论 -
hdu4289 Control --- 最小割,拆点
给一个无向图,告知敌人的起点和终点,你要在图上某些点安排士兵,使得敌人无论从哪条路走都必须经过士兵。每个点安排士兵的花费不同,求最小花费。分析:题意可抽象为,求一些点,使得去掉这些点之后,图分成了两部分,敌人的起点和终点分别在这两部分里。即求最小割。问题是最小割是边,这里把点拆成两个,自己到自己连边,边权为该点点权。其他题目给的边照连就可以了。为了方便,对于点i,拆成(原创 2014-11-03 21:29:22 · 854 阅读 · 0 评论 -
hdu4292 Food --- 最大流
n个人,f种食物,d种饮料,各有一定数量,每个人对每种食物和饮料都有自己的喜好,必须要同时满足Y。问至多能满足多少个人。添加源点s,汇点t。s到每种食物建边,边权为该类食物的数量。根据每个人的喜好,将食物到人、人到饮料建边,边权为1。每个人只能算满足一次,所以把人拆点,自己到自己连边,边权为1.最后,每种饮料到t建边,边权为该类饮料的数量。#in原创 2014-11-03 21:22:20 · 806 阅读 · 0 评论