[学习笔记]上下界网络流

有的时候,网络流建模要考虑某些边必须选择若干次,又不能多于若干次,而且不太容易转化成比较好的限制模型,

就简单粗暴地给每条边定一个流量的上下界,求在满足上下界的基础上的一些问题。

大概有以下几种。

基本思路都是先满足下界,再调整流量守恒,一边满足最优性。

 

无源汇上下界可行流

每条边的流量有上下界
问是否存在一种可行方案

 

首先我们要保证每个点的流入流量等于流出流量
如果存在一个可行流,那么一定满足每条边的流量都大于等于流量的下限.因此我们可以令每条边的流量等于流量下限,得到一个初始流,然后建出这个流的残量网络,每条边的流量等于上限减下限。
但现在可能流量不是守恒的,让t[i]=流入量-流出量
我们建出虚拟的源点和汇点,如果t[i]>0,源点向i连t[i]的边,否则i点向汇点连-t[i]的边,看是否满流即可

 

注意,把下界干掉时,不是真的流过去,反向边不用动。因为这里不能反悔。

 

有源汇上下界可行流

T到S连一条inf的边e。然后同上。

设e的最终流量是w,则原图的可行流就是w

证明:

S,T本身没有入边、出边,那么e的流量就是S流出的,流到T的流量。

拆掉这个边,每个边流量加上下界

由于剩下的图中,满足流量守恒和上下界,那么一定是一个合法的网络流流量分配,那么S流出的流量w就是总流量

 

无源汇上下界最小费用可行流

干掉下界的时候,把费用先计算上。

把超级源超级汇求最大流的一步,换成最小费用最大流即可。

即满足合法的前提下,最小化费用。

费用就是之前的费用加上这次的费用。

例题:[NOI2008]志愿者招募

 

有源汇上下界最小费用可行流

t到s是(inf,0)的边。

同上。

 

有源汇上下界(最小费用)最大流

先求可行流

现在流量已经守恒了。

拆掉t到s的边

残量网络上求s到t的最大流即可。

因为最大流过程一定满足流量守恒,所以依然合法。所以求可行流的反向边流量可以保留,支持反悔。

最大流=可行流+s到t的增加的最大流

 

如果涉及最小费用,把所有的最大流换成最小费用最大流即可。

记得统计三次费用。

 

有源汇上下界(最小费用)最小流

https://blog.csdn.net/Hanks_o/article/details/77995557

两种方法。

第一种:

直接类比上面的 有源汇上下界(最小费用)最大流

理解一下反边,就是反悔。

t到s的最大流,就是s到t能减少的最多的流量。

所以最后一步,求t到s的最大流。

最小流=可行流-t到s的最大流。

 

第二种:(并不如第一个好理解)

类似 <有源汇上下界可行流> 的构图方法,但是不添加T到S的边,求一次超级源到超级汇的最大流。
加边(T,S,0,+∞),在上一步残量网络基础上再求一次超级源到超级汇的最大流。
流经T到S的边的流量就是最小流的值。


该算法的思想是在第一步中尽可能填充循环流,以减小最小流的代价。

第二步最大流为了保证合法性。

其实相当于,第一步先占据一些循环流,然后再跑完第二个最大流之后,删掉t到s的边,对于一些第一步构成的循环流,删掉。

观察现在实际的图流量分配,就是最小流了。

 

例题: P4843 清理雪道

 

转载于:https://www.cnblogs.com/Miracevin/p/10132570.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 你知道全屏滚动的原理是什么吗?它用到了CSS的哪些属性?

[css] 你知道全屏滚动的原理是什么吗&#xff1f;它用到了CSS的哪些属性&#xff1f; 全屏滚动和轮播图类似&#xff0c;都是通过改变元素位置或者显示与隐藏来实现&#xff0c;配合JS的一些交互距离判断&#xff0c;实现类似原生滚动捕获的效果。这里全屏的话就需要将宽高都设…

springcloud gateway 使用nacos 动态过滤器 记一次线上网关升级cpu升高的问题

大家好&#xff0c;我是烤鸭&#xff1a; ​ 网关升级&#xff0c;想使用 springcloud gateway nacos 动态过滤器配置(原来是硬编码的方式)&#xff0c;升级之后出了一些问题(cpu升高&#xff0c;ygc频繁)&#xff0c;记录一下。 关于 springcloud gateway 集成 nacos 可以看…

[css] 你是怎样抽离样式模块的?

[css] 你是怎样抽离样式模块的&#xff1f; 说的是 webpack extract-text-webpack-plugin插件吧&#xff1f; 把样式文件单独打包出来。 webpack4 升级了插件为 mini-css-extract-plugin个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c;…

【1】生产者-消费者模型的三种实现方式

(手写生产者消费者模型&#xff0c;写BlockingQueue较简便 ) 1、背景 生产者生产数据到缓冲区中&#xff0c;消费者从缓冲区中取数据。 如果缓冲区已经满了&#xff0c;则生产者线程阻塞&#xff1b; 如果…

springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下 springboot mybatis-plus 和 druid 的yml 配置文件。 pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency…

[css] 说说你对媒体查询的理解

[css] 说说你对媒体查询的理解 当年做响应式布局的时候用过媒介查询&#xff0c;media query。包括现在有的时候为了兼容也会用到一些&#xff0c;查找对应范围使用不同的样式个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定…

Spring Boot 2.1 版本变化[翻译]

大家好&#xff0c;我是烤鸭&#xff1a; ​ 最近在把低版本的springboot项目升级&#xff0c;正好翻译了下springboot 2.1-2.3 版本的更新日志。 ​ Github 原文&#xff1a;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes ​ 2.2 版…

实验吧Web-易-天网管理系统(php弱类型,==号)

打开网页&#xff0c;查看源码&#xff0c;看到 <!-- $test$_GET[username]; $testmd5($test); if($test0) --> 说明用户名需要加密之后为0。 对于PHP的号&#xff0c;在使用 运算符对两个字符串进行松散比较时&#xff0c;PHP会把类数值的字符串转换为数值进行比较&…

[css] 你知道的等高布局有多少种?写出来

[css] 你知道的等高布局有多少种&#xff1f;写出来 flex拉伸display: flex; align-items: stretch;padding margin抵消 然后background-clip默认是border-box所以会在被抵消的位置依然显示背景 造成等高假象.box,.box2{float: left;width: 100px; } .box {background: #cccccc…

Spring Boot 2.2版本变化[翻译]

大家好&#xff0c;我是烤鸭&#xff1a; ​ 最近在把低版本的springboot项目升级&#xff0c;正好翻译了下springboot 2.1-2.3 版本的更新日志。 ​ Github 原文&#xff1a;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes ​ 2.1 版…

[css] 手写一个满屏品字布局的方案

[css] 手写一个满屏品字布局的方案 <!DOCTYPE html> <html><head><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta charset"UTF-8"><link rel"stylesheet" href"st…

个人的博客搭建(持续更新)

最近的CSDN的博客阅读体验非常的糟糕&#xff0c;恰好自己也一直想搭建一个属于自己的网站&#xff0c;放下自己的技术心得情感体会&#xff0c;从零开始慢慢搭建项目磨练技术&#xff0c;以后也把自己新习得的技术放在里面增加自己的学习乐趣。 一&#xff0c;搭建基本的项目模…

Spring Boot 2.3 版本变化[翻译]

大家好&#xff0c;我是烤鸭&#xff1a; ​ 最近在把低版本的springboot项目升级&#xff0c;正好翻译了下springboot 2.1-2.3 版本的更新日志。 ​ Github 原文&#xff1a;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes ​ 2.1 版…

[css] span与span之间有看不见的空白间隔是什么原因引起的?有什么解决办法?

[css] span与span之间有看不见的空白间隔是什么原因引起的&#xff1f;有什么解决办法&#xff1f; 可能是设置成了inline-block。 第一种解决方案是&#xff0c;去掉span标签内的空白。 第二种解决方案是&#xff0c;设置margin负值&#xff0c;但要根据字体调整&#xff0c;…

[css] 重置(初始化)css的作用是什么?

[css] 重置&#xff08;初始化&#xff09;css的作用是什么&#xff1f; 这是一个&#xff0c;还有就是视觉问题&#xff0c;浏览器默认样式会影响我们的设计还原&#xff0c;而且默认样式一般不够美观&#xff0c;满足不了定制化的视觉需求&#xff0c;达不到视觉产品的信息传…

《代码整洁之道 Clean Architecture》-读书笔记

大家好&#xff0c;我是烤鸭&#xff1a; 关于《代码整洁之道》&#xff0c;记录一下读书笔记。 代码整洁之道第一章 整洁代码整洁代码的艺术第二章 有意义的命名避免误导有意义的区分使用读得出来和可搜索的名字避免使用编码第三章 函数第四章 注释第五章 格式第六章 对象和数…

用Java实现图片验证码功能

一、什么是图片验证码&#xff1f; 可以参考下面这张图&#xff1a; 我们在一些网站注册的时候&#xff0c;经常需要填写以上图片的信息。 1、图片生成实体类&#xff1a; 1 package com.hexianwei.graphic;2 3 import java.awt.Color;4 import java.awt.Font;5 import java.aw…

[css] 怎么让英文单词的首字母大写?

[css] 怎么让英文单词的首字母大写&#xff1f; 楼上用的没问题&#xff0c;学习嘛&#xff0c;那我就来扩展一下。text-transform 属性控制文本的大小写&#xff0c;是CSS2.1的属性&#xff0c;兼容性问题不大。 属性值是关键字&#xff0c;有41种&#xff0c;这个1是实验性属…

Zuul 1.x 升级 springcloud gateway 2.x 遇到的一点问题

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享 Zuul 1.x 升级 springcloud gateway 2.x 遇到的一点问题。 介绍 zuul 和springcloud gateway 都是比较优秀的网关&#xff0c;而 zuul 1.x 采用的是 servlet 模型&#xff0c;gate 采用的是 reactor模型&#xff0c;效率和资…

render_template 网页模板

模板简单介绍&#xff1a; 视图函数&#xff1a;视图函数就是装饰器所装饰的方法&#xff0c;视图函数的主要作用是生成请求的响应&#xff0c;这是最简单的请求。实际上&#xff0c;视图函数有两个作用&#xff1a;处理业务逻辑和返回响应内容。在大型应用中&#xff0c;把业务…