算法学习笔记(8.0): 网络流前置知识

算法,学习,笔记,网络,前置,知识 · 浏览次数 : 25

小编点评

**网络流基础网络流合集链接:** 网络流网络 G 中每条有向边 (x, y) 都有一个给定的容量 c(x, y),若 (x, y) ∉ E,则 c(x, y) = 0。 图中有两个特殊结点 S 和 T,分别称为源点和汇点。 网络流函数 f 定义了从源点到汇点的边上的流量,并满足容量限制、斜对称和流量守恒等关系。 **流入等于流出能量守恒定律:** 网络中除了源点和汇点以外,任何结点不储存流量,其流入量等于流出量。

正文

网络流基础

网络流合集链接:网络流


网络 \(G = (V, E)\) 实际上是一张有向图

对于图中每一条有向边 \((x, y) \in E\) 都有一个给定的容量 \(c(x, y)\)

特别的,若 \((x,y) \notin E\) , 则 \(c(x, y) = 0\)

图中还有两个指定的特殊结点,\(S, T (S \ne T)\) ,分别称为源点和汇点

对于网络有一个流函数 \(f\)。对于 \((x, y) \in E\)\(f(x, y)\) 称为边的流量,\(c(x, y) - f(x, y)\)称为边的剩余流量

流函数满足以下性质:

  • 容量限制\(f(x, y) \le c(x, y)\)

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

  • 流量守恒\(\forall x \ne S, x \ne T, \sum_{(u, x)\in E} f(u, x) = \sum_{(x, v) \in E} f(x, v)\) 说人话:流入=流出

能量守恒定律也告诉我们网络中除了源点和汇点以外,任何结点不储存流量,其流入量等于流出量。

网络流模型可以概括为:在不超过容量限制的前提下,“流”从源点源源不断产生,流经整个网络,最终全部归于汇点。

生动一点,也可以把网络流看作水网,每一个管道有其流量限制,水流从源点流入,在不超过流量限制下,经过一些管道从源点流出,便是网络流模型。

基础知识就这些了,其他知识请慢慢享用_

与算法学习笔记(8.0): 网络流前置知识相似的内容:

算法学习笔记(8.0): 网络流前置知识

网络流基础 网络流合集链接:网络流 网络 $G = (V, E)$ 实际上是一张有向图 对于图中每一条有向边 $(x, y) \in E$ 都有一个给定的容量 $c(x, y)$ 特别的,若 $(x,y) \notin E$ , 则 $c(x, y) = 0$ 图中还有两个指定的特殊结点,$S, T

算法学习笔记(8): 网络流

# 网络流 > 网络流是一个博大精深的一个话题…… ## 箕(基)畚(本)知识 文章链接:[基本知识](https://www.cnblogs.com/jeefy/p/17050220.html) ## 网络最大流 文章链接:[网络最大流](https://www.cnblogs.com/jeefy

算法学习笔记(8.2): 上下界网络流

# 上下界网络流 [TOC] > 前置知识以及更多芝士参考下述链接 > 网络流合集链接:[网络流](https://www.cnblogs.com/jeefy/p/17050215.html) 上下界网络流是普通网络流的一种变体,对于网络流,我们不仅关注其流量的上界,下届同样有所体现。 题型大致有五

算法学习笔记(8.1): 网络最大流算法 EK, Dinic, ISAP

网络最大流算法 EK, Dinic, ISAP 详解

OI-Wiki 学习笔记

算法基础 \(\text{Update: 2024 - 07 - 22}\) 复杂度 定义 衡量一个算法的快慢,一定要考虑数据规模的大小。 一般来说,数据规模越大,算法的用时就越长。 而在算法竞赛中,我们衡量一个算法的效率时,最重要的不是看它在某个数据规模下的用时,而是看它的用时随数据规模而增长的趋

算法学习笔记(6): 树链剖分

树链剖分 树链剖分是一个很神奇,但是在树上可以完成一些区间操作问题 简单来说,就是把一棵树分成一条条的链,通过维护链上的信息来维护整棵树的信息 基础知识可以参考我的另外一篇博客:算法学习笔记(5): 最近公共祖先(LCA) 这里假设你已经掌握了上述博客中的所有相关知识,并清晰了其背后的原理 性质?发

算法学习笔记(11): 原根

原根 此文相对困难,请读者酌情食用 在定义原根之前,我们先定义其他的一点东西 阶 通俗一点来说,对于 $a$ 在模 $p$ 意义下的阶就是 $a^x \equiv 1 \pmod p$ 的最小正整数解 $x$ 或者说,$a$ 在模 $p$ 意义下生成子群的阶(群的大小) 再或者说,是 $a$ 在模

算法学习笔记(30):Kruskal 重构树

Kruskal 重构树 这是一种用于处理与最大/最小边权相关的一个数据结构。 其与 kruskal 做最小生成树的过程是类似的,我们考虑其过程: 按边权排序,利用并查集维护连通性,进行合并。 如果我们在合并时,新建一个节点,其权值为当前处理的边的权值,并将合并的两个节点都连向新建的节点,那么就可以得

算法学习笔记(3.1): ST算法

ST表 在RMQ(区间最值)问题中,著名的ST算法就是倍增的产物。ST算法可以在 \(O(n \log n)\) 的时间复杂度能预处理后,以 \(O(1)\) 的复杂度在线回答区间 [l, r] 内的最值。 当然,ST表不支持动态修改,如果需要动态修改,线段树是一种良好的解决方案,是 \(O(n)\

C++算法之旅、09 力扣篇 | 常见面试笔试题(上)算法小白专用

算法学习笔记,记录容易忘记的知识点和难题。详解时空复杂度、50道常见面试笔试题,包括数组、单链表、栈、队列、字符串、哈希表、二叉树、递归、迭代、分治类型题目,均带思路与C++题解