给你一个网络流的图 图中可能会有流量不平衡和流量>容量的情况存在

每调整一单位的流量/容量 需要一个单位的花费

问最少需要多少花费使得原图调整为正确(可行)的网络流

设当前边信息为(u,v,f,c) 即从u到v有一条流量为f,容量为c的有向边

设加的边信息为[u,v,f,c] 即加一条从u到v有一条容量为f,单位费用为c的有向边

首先如果源汇的流量不平衡的话 要加一条边[T,S,INF,0]使得源汇流量平衡

接下来分情况讨论:

①:流量f>容量c

  首先ans+=f-c 因为必须调整f-c个单位的流之后 才能使该边合法

  加边[u,v,INF,2]   这条边的意思为f=c时 提高f需要2的花费(需要同时提高c)

  加边[v,u,f-c,0]   可用作减少流量

  加边[v,u,c,1]   可用作减少流量

    边[u,v,INF,2]很好理解 但边[v,u,f-c,0]和[v,u,c,1]该如何理解呢

    首先我们分析调整完后该边f的流量有下列情况 1.[0,c]   2.[c,f]   3.[f,INF]

    第一种情况c不需要调整 要调整的是f 因为我们预先支付了f-c费用 所以f~c阶段的花费是0 而0~c的阶段单位费用为1

    第二种情况c和f同时需要调整 但是总费用是f-c 我们只需要利用[v,u,f-c,0]调整到想要的f即可

    第三者情况c和f也同时需要调整 但是f不会减小 所以后面两种边就无效了

    所以这三种边就可以包括f的全部情况

②:流量f<=容量c

  加边[u,v,INF,2]   这条边的意思为f=c时 提高一单位f需要2的花费(需要同时提高c)

  加边[u,v,c-f,1]   f~c这段单位花费为1

  加边[v,u,f,1]  0~f这段单位花费为1

加完费用流的边之后 对于每条(u,v,f,c) 都needflow[u]-=f   needflow[v]+=f

对于每个点(包括源汇)

needflow[i]>0则加[SS,i,needflow[i],0]   needflow[i]<0则加[i,TT,-needflow[i],0]

最后跑一次SS到TT的最小费用流 加上之前的ans 即为答案

转载于:https://www.cnblogs.com/Aragaki/p/9768480.html

Codeforces 708D 上下界费用流相关推荐

  1. 【bzoj2324】[ZJOI2011]营救皮卡丘 最短路-Floyd+有上下界费用流

    原文地址:http://www.cnblogs.com/GXZlegend/p/6832504.html 题目描述 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘 ...

  2. 【BZOJ3876】[Ahoi2014]支线剧情 有上下界费用流

    [BZOJ3876][Ahoi2014]支线剧情 Description [故事背景] 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩 ...

  3. BZOJ 2055: 80人环游世界 [上下界费用流]

    2055: 80人环游世界 题意:n个点带权图,选出m条路径,每个点经过val[i]次,求最小花费 建图比较简单 s拆点限制流量m 一个点拆成两个,限制流量val[i],需要用上下界 图中有边的连边, ...

  4. UVALive7670 Asa's Chess Problem,上下界费用流,另类解法

    Asa's Chess Problem 先阐述一下带上下界的边怎么建. 带上下界的建图方法 设我要建一条边(u→v)(u\rightarrow v)(u→v),流量上界为upupup,下界为downd ...

  5. 【BZOJ4108】[Wf2015]Catering 有上下界费用流

    [BZOJ4108][Wf2015]Catering Description 有一家装备出租公司收到了按照时间顺序排列的n个请求. 这家公司有k个搬运工.每个搬运工可以搬着一套装备按时间顺序去满足一些 ...

  6. [bzoj2055]80人环游世界 上下界费用流

    2055: 80人环游世界 Time Limit: 10 Sec   Memory Limit: 64 MB [ Submit][ Status][ Discuss] Description 想必大家 ...

  7. BZOJ 2055: 80人环游世界 有源汇上下界费用流

    2055: 80人环游世界 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 568  Solved: 347 [Submit][Status][Disc ...

  8. 一篇网络流 基本模型超全总结(最大流 费用流 多源汇最大流 上下界可行流) 思路+代码模板

    文章目录 一.网络流与最大流 二.网络流三个基本性质 三.重要定义定理 四.最大流算法 <Ⅰ> Edmonds-Karp算法(EK算法) 1.EK算法 2.算法思想: 3.代码模板 4.模 ...

  9. 【bzoj3698】XWW的难题 有上下界最大流

    题目描述 XWW是个影响力很大的人,他有很多的追随者.这些追随者都想要加入XWW教成为XWW的教徒.但是这并不容易,需要通过XWW的考核. XWW给你出了这么一个难题:XWW给你一个N*N的正实数矩阵 ...

最新文章

  1. Ubuntu 14.04使用命令行安装VirtualBox
  2. 基于STC8H1K28的双轴机械臂驱动模块:步进电机42HS348E,BH32角度传感器
  3. codeforces round 422 div2 补题 CF 822 A-F
  4. 浏览器设置了打开会显示特定网页为什么还是显示2345_Edge没能取代Chrome成为我的主力浏览器...
  5. C#将json字符串解析成对象
  6. Flex与.NET互操作系列文章
  7. 【跨Web与客户端多媒体开发】
  8. php7 变量,PHP7变量结构分析
  9. (pytorch-深度学习系列)正向传播与反向传播-学习笔记
  10. HDOJ_1004_Let the Balloon Rise
  11. 牛X | 一款比传统数据库快100-1000倍的数据库,认识一下
  12. python第三方库介绍和安装
  13. 高并发架构系列:Kafka、RocketMQ、RabbitMQ的优劣势比较
  14. unity3d 挂载脚本_Unity3D加载资源的四种方式
  15. java计算机毕业设计快滴预约平台MyBatis+系统+LW文档+源码+调试部署
  16. 计算机组装与维修第3版,计算机组装与维护(第3版)
  17. python数据容器
  18. 如何 gitignore .gitignore
  19. iOS - navigationController简单使用
  20. 基于Scrapy对更新后的Dmoz进行抓取(网上旧版本不靠谱)

热门文章

  1. java 线程的理解_Java多线程基础理解
  2. 用友ERP-U8执行完成流程小记
  3. 如何发送Excel中图表到邮件
  4. [HNOI2012]集合选数 BZOJ2734
  5. 【云周刊】第120期:麒麟来了!PUE逼近1.0,阿里展示液冷黑科技
  6. Redis Cluster集群知识学习总结
  7. 安全测试===Mysql 注入练习网站(3)
  8. 翻身的废鱼——论PHP从入门到放弃需要多久?13
  9. 封装算法: 模板方法(Template Method)模式
  10. 《Windows服务器配置与管理》文件系统管理