Dinic

前言(不没有什么鸡蛋的内涵)

本蒟蒻今天继续刷BZOJ

果然 一开始就不会做 唉

搜一下正解,是最大流,反正我啥也不会,学!!!

鼓捣了一会,居然搞懂了Dinic算法

正文:

其实懂了以后发现其实还是很好理解的。

我觉得核心的思想主要分为几步:
1.用BFS构造层次图 

只保留每个点出发到下一个层次的弧,使图上的任意路径都是“起点->层次1->层次2->.....终点”这样的顺序。

2.从起点开始在层次图里中DFS,每找到一条路径就增广。

增广就是可以把那条路径上的流量增加所经过路中残量的最小值(感觉在说顺口溜)。

开始的时候是这样子的

画了四张很(suai)丑(bao)的图来演示

首先把它变成一个层次图然后不停的增广增广增到不能增就行了

理论就lu到着了,算法实现明天在来(我果然是个弱鸡)

——————————完结撒花(话说画图真的用尽了我的洪荒之力)————2016/8/21

posted @ 2016-10-17 21:21  Native_carrot  阅读(126)  评论(0编辑  收藏  举报