![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小费用最大流
HT008_123
家人们点点关注叭
展开
-
最小费用最大流
给出一个容量网络,那他的最大流一定是一个定值(即使是有多个一样的最大值)。 所以我们从开始的可行流开始增广时,最终的增广量是一定的。 所以为了满足最小费用我们只需要每次找最小费用的增广路即可,直到流量为最大值。 这个问题仅仅是在求增广路时先考虑费用最小的增广路,其他思想和EK思想一样。 我们学过SPFA求最短路算法(bellman-ford的队列优化),所以我们将弧的费用看做是路径长度,即原创 2017-04-28 17:36:42 · 337 阅读 · 0 评论 -
[BJOI2012] 连连看
题目描述:QAQ…题目分析:拆点 N^2 枚举建边 跑个最大费用流就好了…题目链接:BZOJ 2661 Luogu 4134Ac 代码:#include <cstdio>#include <iostream>#include <cstring>#include <queue>#include <cm...原创 2018-05-05 09:46:31 · 299 阅读 · 0 评论 -
[NOI 2010] 美食节
题目描述:QAQ..题目分析:思路见 SCOI2007 修车 不同点1:每道菜有P[i]个,我们只需要把每个菜的点到T的边容量改成P[i]就好了 不同点2:极限数据下,我们图中的边的数量超过了6e6,导致我们SPFA只能得60分… 观察可得,这道题里,按照我们的模型,最多出现800条增广路,而且每次增广都是一的流量 也就是说我们实际上跑800次spfa即可,那么我们就得想个...原创 2018-05-09 15:20:03 · 157 阅读 · 0 评论 -
[HNOI2001] 软件开发
题目描述:雾题目分析:最小费用最大流 原题解 拆点,每个点拆成入点和出点。显然,要满足每天的餐巾供应,于是有附加源汇ST,S向入点引一条容量为ni,费用为0的边,出点向T引一条容量为ni,费用为0的边。若满足题目要求,这必有所有出点到T的弧满载,为了保证这一点,由S向出点引容量为无穷,费用为f的边。又因为每天没用完的餐巾可以留到下一天,所以每天的入点向下一天的入点引...原创 2018-04-10 09:42:17 · 188 阅读 · 0 评论 -
[HAOI2010] 订货
题目描述:大大大雾。题目分析:开始把仓库容量想成了购买+储存的容量上限,还傻敷敷的拆点(哇,什么脑回路… 建模很好搞,就不分析了题目链接:Luogu 2517 BZOJ 2424Ac 代码:#include <cstdio>#include <iostream>#include <cstring>#inclu...原创 2018-04-09 18:49:26 · 176 阅读 · 0 评论 -
[SDOI2016 Round1] 数字配对
题目描述:每个点有三个参量A,B,C B为数量 任意两个点之间若 Ai/AjAi/AjA_i/A_j为一个质数,则这两个点可以配对,获得 Ci∗CjCi∗CjC_i*C_j 的价值 问在总价值不小于0的前提下,最多可以进行多少次配对.题目分析:N2N2N^2 枚举点 暴力判断 连边 建图方式 将每个点拆成两个点 S−>D1,Cap=B,Cost=0S−>D...原创 2018-03-06 09:03:44 · 241 阅读 · 0 评论 -
[六省联考] 寿司餐厅
题目描述:太长了,不描述!题目分析:看题面看了10min才反应过来这是个最大权值闭合子图的问题 应用网络流最小割的模型来解决本问题 首先,每个寿司编号即为器材,代价为 w[i]*w[i]*m 那么我们由每个寿司编号向汇点链接一条容量为w[i]*w[i]*m 每个寿司一定需要一个寿司编号,代价为 -w[i] 那么我们由寿司向寿司编号连一条inf的边,由寿司向汇点连一条容量为...原创 2018-03-18 09:02:02 · 175 阅读 · 0 评论 -
深海机器人问题
大修前的最后一题,一会就放假啦,开心类型:费用流建模分析:因为在每条道路上都有权值,即可以收集的价值,很明显是个最大费用流问题. 我们先从源点向每个出发点建一条容量为在本出发点出发的机器人数量,价值为0的边 然后对于分别向上面的点和右面的点建立一条容量为1,价值为-c的边 但是不要忘了我们还要再建一条容量为inf,价值为0的边,来模拟再次经过的过程 然后在终点向汇点建一条容量为原创 2018-01-26 14:29:00 · 401 阅读 · 0 评论 -
网络流与线性规划二十四题
前言网络流大法好 只刷了14道题目,剩下的真的做不动啦。1.飞行员匹配问题传送门 本题为二分图匹配问题,可以用网络流解决,也可以用匈牙利算法解决。 这题是一道SPJ,方案不唯一,样例好长时间不过,我以为我错了。。。#include #include #include #include #define il inlineusing namespace std;原创 2018-01-07 16:59:12 · 369 阅读 · 0 评论 -
P3440 [POI2006]SZK-Schools
裸的费用流 QWQ#include #include #include #include #define il inlineusing namespace std;const int inf=0x7fffffff;const int maxm=110000;int head[maxm],to[maxm*2],cap[maxm*2],net[maxm*2],cost[maxm*原创 2018-01-17 20:07:05 · 199 阅读 · 0 评论 -
BZOJ 4819:[Sdoi2017]新生舞会 01分数规划+费用流
题目题目分析:二分答案 mid 若C=(a’1+a’2+…+a’n)/(b’1+b’2+…+b’n)<=mid 则a1−mid∗b1+a2−mid∗b2+...+an−mid∗bn<=0a1−mid∗b1+a2−mid∗b2+...+an−mid∗bn<=0a_1-mid*b_1+a_2-mid*b_2+...+a_n-mid*b_n...原创 2018-01-19 15:54:05 · 265 阅读 · 0 评论 -
[ZJOI2010] 网络扩容
第一问很好解决,直接跑最大流即可。 第二问很明显是个费用流问题。 一个很明显的想法就是我们可以在原网络的基础上使最大流提升K跑出的最小费用即为答案。 建模方法: 首先保留原网络的残留网络,设费用为0 然后复制原网络,但是容量为inf,费用即扩容费用。 然后搞一个起点,向1连一条容量为K,费用为0的边。 然后在这个新图上跑最小费用最大流即可。 分析: 我们把原网络复制一遍,然后虚拟原创 2018-01-14 15:42:00 · 435 阅读 · 0 评论 -
[SCOI2007]修车
类型:最小费用流 建模真的绝了。 建模分析: 设修车师傅为A,正在修车B 修车B只会对修车师傅A在修完之后的修车人产生等待时间,而不会对修车师傅A修此车之前的修车人产生影响 设修完车B后还有K个人,那么修这个车所产生的等待时间为 K*time[B][A] 所以把每个修车师傅拆成N个人,表示第几次修的车。 然后搞搞源汇点就行了 Lougu BZOJ COGS#include原创 2018-01-14 09:59:11 · 339 阅读 · 0 评论 -
[NOI2008]志愿者招募
类型:费用流 建模:从第i天向i+1天连一条容量为 inf-need,费用为0的边。 源点S连1,n+1连汇点T 志愿者 从 l向r+1连一条容量为inf,费用为p的边 分析:若我们从今天连向明天的边容量为inf-need的话 为了使网络达到最大流,志愿者边会补上空缺。 这样就模拟了志愿者招募的过程。 CODE#include #include #include #i原创 2018-01-11 21:36:34 · 949 阅读 · 0 评论 -
工作安排(待编辑)
#include <iostream> #include <queue> #include <string.h> #include <cstdio>#define MAX 2010 #define MAXE 600010using namespace std; int maxData = 0x7fffffff; queue<int> dl;int head[MAX],co原创 2017-05-05 15:41:17 · 385 阅读 · 0 评论 -
bzoj1877 晨跑
红果果的最小费用最大流模板 从x到y连一条边,容量为1(因为路只能走一遍),权值为k。 但是要注意一点就是不能走重复的路线,所以在一个周期内,每天的晨跑路线都不会相交(在十字路口处) 所以把每个点拆成入点和出点,容量为1,权值为0就可以保证每个点只访问一遍啦233 对于起点为1或者是终点为n的路要特殊处理一下,因为学校和宿舍不视为十字路口#include <iostream> #incl原创 2017-04-29 15:12:06 · 278 阅读 · 0 评论 -
[HDU 2448] Mining Station on the Sea
题目描述:有N个海港,N个船只,M个矿藏点,有K条海路连接矿藏点,每条路都有一个权值,并且海路双向,有P条路连接矿藏点和海港,只能从矿藏点驶向海港,每条路有一个权值,N条船初始在N个矿藏点上,现在要求你求出N个船进入N个海港的最小代价,保证有解。题目分析:不就是个费用流吗.首先,我们从源点向每个有船只的矿藏点连一条容量为1,权值为0的边然后根据矿藏点之间的路径信息,连接容量为INF,权值...原创 2019-08-06 17:39:03 · 147 阅读 · 0 评论