网络流小结(初步)(施工中)

前言

某一日的晚上,白白酱劝我写她善良的网络流板子,但是,我实在是太菜了,竟不敢面对这道模板,遂决定写点什么来提升信心,于是,此篇总结应运而生。
但是吧,众所周知,如果你没有学线段树,你会收获一个还算快乐的 oi 生涯,如果你学了线段树,你会收获一个有点失败的oi生涯,如果你还学了网络流,你将会收获一个彻底失败的oi生涯。

定义

网络流其实就是给你一个网络,也就是一个有向图,每条边有一个流量,要求求出从起点到终点的最大流量。
看着很简单是吧,但是真正到了做题就会发现,不是这道题为什么是网络流啊,他和网络流有什么关系吗,由此我们可以发现,其实网络流也没什么难的,也就是我不知道这道题和网络流有关而已。

基本概念

流量: 每条边有一个给定的权值,表示经过该边的总流量不得大于此边的权值,也就是流量。
退流: 由于算法特性,有可能会先更新到一条边,但是实际上这条边是不会出现在此网络流的最大流中的,此时我们就需要引入一个新的概念——退流。

主要算法

解决网络流问题,主流的算法有 EK 和 dinic 两种,EK 更加暴力,常用于解决边数为 \(10^3\) ~\(10^4\) 的题目,dinic 则是在 EK 的基础上进行了一定的优化,降低了其复杂度,可以处理 \(10^4\) 规模的数据。

EK

主要思路

EK 实质上就是先利用 bfs 预处理出来从起点到当前点的路径,然后记录好更新过来的上一个数,每次直接递归更新。

posted @ 2025-02-25 20:55  wjx_2010  阅读(22)  评论(3)    收藏  举报