Dinic
前言(不没有什么鸡蛋的内涵)
本蒟蒻今天继续刷BZOJ
果然 一开始就不会做 唉
搜一下正解,是最大流,反正我啥也不会,学!!!
鼓捣了一会,居然搞懂了Dinic算法
正文:
其实懂了以后发现其实还是很好理解的。
我觉得核心的思想主要分为几步:
1.用BFS构造层次图
只保留每个点出发到下一个层次的弧,使图上的任意路径都是“起点->层次1->层次2->.....终点”这样的顺序。
2.从起点开始在层次图里中DFS,每找到一条路径就增广。
增广就是可以把那条路径上的流量增加所经过路中残量的最小值(感觉在说顺口溜)。
开始的时候是这样子的
画了四张很(suai)丑(bao)的图来演示
首先把它变成一个层次图然后不停的增广增广增到不能增就行了
理论就lu到着了,算法实现明天在来(我果然是个弱鸡)
——————————完结撒花(话说画图真的用尽了我的洪荒之力)————2016/8/21