首页 > 其他分享 >网络流学习笔记

网络流学习笔记

时间:2024-04-01 22:25:14浏览次数:12  
标签:EK sum 网络 笔记 学习 2.3 Dinic 2.2

网络流的核心在于建图。建图建出来之后,剩下的基本上只是模板了。

1 基本定义

一个网络是一张有向图 \((V, E)\),其中每条边都有一个流量 \(c(u,v)\)。一个网络有一个源点 \(S\) 和一个汇点 \(T\)。

网络流满足以下几条性质:

  • 流函数 \(f : (x, y) \rightarrow \text{R}\) 是一个二维数对到实数域上的一个映射。

  • 容量限制:\(f(x, y) \leq c(x, y)\)。

  • 斜对称:\(f(x, y) = -f(y, x)\)。

  • 流量守恒:\(\forall i \neq S, i \neq T, \sum f(u, i) = \sum f(i, v)\)。

以下是网络流的相关定义。

  • 对于有源汇网格,\(\sum f(S, v) = \sum f(u, T)\),也就是初始流量和结束流量相等。

  • 残量网络 \(G_f = (V, E_f)\):\(c(u, v)_f = c(u, v) - f(u, v)\),若 \(c(u, v)_f = 0\),则视为 \((u, v) \not \in E_f\)。

  • 增广路:残量网络 \(G_f\) 上的一条从 \(S\) 到 \(T\) 的一条路径。

  • :将点集划分成 \(A, B\),则称这个划分为一个割。这个割的权值为 \(\sum_{u \in A, v \in B} f(u,v)\)。若 \(u \in A, v \in B\),则称 \((A, B)\) 为割边。

2 网络最大流

最著名的网络最大流算法有 Dinic 和 Edmonds_Karp。其他我不会,不过多介绍。

2.1 增广

2.2 Edmonds_Karp

2.2.1 EK 算法简介

2.2.2 EK 代码实现

2.2.3 EK 复杂度分析

2.3 Dinic

2.3.1 Dinic 算法流程

2.3.2 Dinic 注意细节

2.3.3 Dinic 代码实现

什么?你问我没有 Dinic 复杂度证明?我不会啊!

3 网络最小割

最小割是一个网络 \(G\) 中权值最小的一个割。

3.1 最大流最小割定理

一个网络的最大流等于其最小割。

证明待补。

4 网络流 24 题

makabaka.

5 网络流例题

5.1 ABC347G

标签:EK,sum,网络,笔记,学习,2.3,Dinic,2.2
From: https://www.cnblogs.com/aemmprty/p/18109491

相关文章

  • 【Linux】使用NetworkManager工具nmcli命令进行高级网络设置bond0-6
    NetworkManager工具nmcli(NetworkManager的命令行界面)命令行实用程序,用于控制NetworkManager和报告网络状态。它可以用作nm-applet或其他图形客户端的替代品。nmcli用于创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。对于服务器,虚拟机,终端,nmcli可以直......
  • 学习-Java顺序结构之字符变换之大小写字母转换
    任务描述本关任务:将键盘输入的大写字母转化为小写字母。相关知识为了完成本关任务,你需要掌握:字符型变量和常量;字符型数据的加减运算;字符型数据的输入/输出。字符型变量和常量在之前我们学习了整型和浮点型的变量和常量,接下来介绍字符型的变量和常量。首先我们要先了解......
  • [Socket/计算机网络] Java Socket编程:基础篇
    1计算机网络的核心概念网络通信概念:两台设备之间通过网络实现数据传输2.网络通信:将数据通过网络从一台设备传输到另一台设备java.net包下提供了一系列的类或接口,供程序员使用,完成网络通信网络概念:两台或多台设备通过一定物理设备连接起来构成了网络根据网络的覆......
  • while、for循环学习
    练习1、列举你所知道的python所有基本数据类型及各自特征数字类型整数类型浮点数类型字符串类型列表类型字典类型布尔类型元组类型集合类型2、说说你所知道的运算符有哪些【一】算术运算符【二】比较运算符【三】赋值运算符【四】逻辑运算符【五】成员运算符......
  • OpenStack学习笔记03-OpenStack环境准备
    OpenStack学习笔记03-OpenStack环境准备OpenStackLinux对着《云操作系统(OpenStack)》第三章做的。一、系统环境配置1.为什么NAT模式网关不能填写XX.XX.XX.1?两天了,被这个问题纠缠两天了。虚拟机设置的是NAT模式,但是就是上不了外网。就是因为我把VMWare的NAT的网关改在了X......
  • HTTPS ECDHE 握手解析(计算机网络)
    使用了ECDHE,在TLS第四次握手前,客户端就已经发送了加密的HTTP数据,而对于RSA握手过程,必须要完成TLS四次握手,才能传输应用数据。所以,ECDHE相比RSA握手过程省去了一个消息往返的时间,有点「抢跑」的意思,它被称为是「TLSFalseStart」,跟「TCPFastOpen」有点像,都是在......
  • 计算机网络 实验指导 实验八
    三层交换机的访问控制1.实验拓扑图:名称接口IP地址网关SwitchAF0/1192.168.1.1/24F0/2172.1.1.1/24Switch BF0/1192.168.1.2/24F0/2172.2.2.1/24PC1172.1.1.2/24172.1.1.1PC2172.1.1.3/24172.1.1.1PC3172.2.2.2/24172.2.2.1PC4172.2.2.3/24172.2.2.12.实验目的(1)ACL(标准......
  • 深入学习MySQL1——体系结构、常见引擎、索引
    MySQL体系结构连接层:提供一些mysql的数据连接对象、用户校验、权限认证等服务服务层:在本层实现了一些核心功能,如SQL接口,缓存查询(8.0之后的版本已取消该功能)、SQL分析和优化,部分内置函数的执行。所有的跨存储引擎的功能都在这一层实现,如:过程、函数等。在该层,服务器会解析查询并......
  • 学习嵌入式的第三天
    学习嵌入式的第三天数据类型获取数据类型存储的大小sizeof运算符可计算出指定数据(变量,常量)的字节大小它的结果是size_t类型的数据(本质上就是unsignedint或unsingnedlong类型又系统和编译器决定),对应的占位符是%zu数据类型的转换数据类型的隐式转换整数自动......
  • 前端面试题【笔记】
    1、判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20varreg=/^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;//定义RegExp对象,大括号表示重复次数4-19次 reg.test("a1a__a1a__a1a__a1a__");//检查一个字符串中是否存在创建RegExp对象实例时所指定......