
费用流
文章平均质量分 78
16bit戦争
这个作者很懒,什么都没留下…
展开
-
BZOJ 2597 WC2007 剪刀石头布 费用流
题目大意:给出一张竞赛图中的其中几条单向边,剩下的边随意定向。问最多可以形成多少三元环。思路:对于任意三个点来说,他们组成了三元环,当且仅当这些点的入度=处度 = 1。如果没有组成三元环,只需要改变这其中任意一条边的方向,使得一个点的入度变成2,一个点的出度变成2。我们只需要算出有多少三个点中有一个点的入度为2的就可以了,并最小化这个东西。通过公式:ans=C(n,3)-ΣC(de原创 2015-01-07 18:26:40 · 896 阅读 · 0 评论 -
POJ 2175 Evacuation Plan 费用流消圈
题目大意:给出一个费用流的模型和已经流过的一些边,问是否存在比这个解更优的解。思路:直接用原图做一次费用流求最优解会T掉。先介绍费用流消圈定理:如果当前费用流的残量网络中存在负圈,那么当前流不是最优的解。其实很好理解,结合原图和流过流量之后的反边,若出现了负圈,那么就可以沿着这个负圈增广,而且费用更小。不过为了解决这个题我们并不需要建立完整的网络流,只需要建立残量网络之后SPF原创 2015-01-28 18:54:28 · 969 阅读 · 0 评论 -
BZOJ 3171 TJOI 2013 循环格 费用流
题目大意:给出一个表格,每个表格指向周围四个格子中的一个,问你可以改变一些格子上的指向,问让所有格子都在圈中最小需要改变多少。思路:所有的格子都在圈中,由于每个格子只能有一个出边,所以就要保证所有格子都有一个入边。建立费用流的模型,所有点向汇点连流量1费用0的边,表示要接受一个入边。S向所有点连一条流量1费用0的边,表示一条出边。一个格子向周围四个格子连边,流量1,如果方向与当前方向相原创 2015-01-16 08:33:28 · 937 阅读 · 0 评论 -
BZOJ 1221 HNOI 2001 软件开发/网络流24题 餐巾计划问题 最小费用最大流
题目大意:有一个软件公司,每天需要给一些员工准备消毒毛巾,这些毛巾可以循环利用,但是需要消毒。可以将毛巾送去消毒,有两种方式,A天fA花费,B天fB花费。或者还可以直接买新毛巾,问为了满足员工的需求,至少需要花多少钱。思路:经典的费用流问题。将每一天拆点,S向每一天CODE:#include #include #include #include #inc原创 2014-12-29 20:53:15 · 1016 阅读 · 0 评论 -
BZOJ 3442 学习小组 费用流
题目大意:给出学生的数目和学习小组的数目,学生参加小组需要交纳费用,每个小组会支出C[i]*cnt[i]^2。每个学生可以参加k个小组,问最多的学生参加时,最小支出费用。思路:如果不算后面那个什么鬼的条件的话,见图十分显然。S->每个学生 f:k,c:0每个学生->每个学习小组 f:1,c:-F[i]每个学习小组->T f:1,c:1 * C[i],3 * C[i],5 *原创 2015-01-22 14:29:12 · 965 阅读 · 0 评论 -
BZOJ 3876 AHOI 2014 支线剧情 有下界有源汇的费用流
题目大意:主人公在玩游戏,他的存档系统坏了,只能从头开始游戏,不能从中途开始,问最少多长时间可以走过所有的流程。思路:每一条边都要至少走一次,这是流量的下界,源点是游戏的开始,汇点是所有结局。裸的有下界有源汇的费用流。我也不知道为什么要那样建图。。CODE:#include #include #include #include #include #defi原创 2015-01-23 08:34:02 · 1742 阅读 · 0 评论 -
BZOJ 1930 SHOI 2003 pacman 吃豆豆 费用流
题目大意:给出一些平面上的点,你有两个吃豆人,从一个点出发,这个吃豆人可以吃到当前点右上方的点。问这两个吃豆人最多可以吃到多少豆子。思路:我已經吧不相交的条件去掉了。。不加优化的费用流模型很明显超级源->源 flow2 cost0汇->超级汇 flow2 cost0下面是拆点i i 对于从点i能够到达点j的情况i j 然后跑朴素费用流,很明显T掉了。原创 2015-01-05 17:27:08 · 1234 阅读 · 0 评论 -
BZOJ 2668 CQOI 2012 交换棋子 费用流
题目大意给出一个网格图,每个格子上有移动次数限制。每次可以交换相邻的两个棋子(有公共点就算相邻)。给出一个初始状态,问最少需要多少步达到目标状态。思路这个题主要是限制是每个格子,而不是棋子。我们对每个格子拆点,相邻的格子之间连边,经过一个格子的时候的费用是2,流量是(正常的流量+这个点是入点+这个点是出点)/2,在连S和T的时候要将费用设成-1。这样跑出来的最小费用的一半就是答案。 注意要特判一下原创 2015-03-25 20:25:10 · 775 阅读 · 0 评论 -
BZOJ 3550 ONTAK2010 Vacation 线性规划转费用流
题目大意给出一个长度为3×N 3 \times N的序列,规定N N个数字中不能选择超过k k 个,问最多能取出的数的权值和是多少。思路非常神的建图,本来想朴素费用流不过去学zkw费用流,结果朴素费用流跑的飞起。 利用一些辅助变量我们可以列出一些式子: 设k k是N N个数种最多能够取出的数的数量,a[i] a[i]表示第i i天选不选,y y数组一定是自然数。 ∑ N i=1 a[i]+原创 2015-03-26 19:55:16 · 1320 阅读 · 0 评论