
网络流
YKgsmUDq
这个作者很懒,什么都没留下…
展开
-
最大流——EK算法
EK算法。。。特别暴力:时间复杂度o(V*E^2) 所以竞赛中我们一般用效率更高的dinic算法 EK算法核心就是残量网络图,残量指的就是每条路上剩余的流量。 不难发现,只要能在残量网络图上找到一条从源点到汇点的路,就能在这一条路上加流量,所加的流量就是在这条路径上每条边残量取个MIN,一点一点的加就是了(所以说很暴力)。注意: 当有流量从U流向了V时,就说明V有流量可以流回U,所以除了U-原创 2017-03-13 21:18:21 · 458 阅读 · 0 评论 -
POJ1273
POJ1273 Drainage DitchesDescription一次下雨淹了Bessie的田,所以FJ建了个排水系统帮Bessie排水到。整个排水系统由NN个点,MM条排水管道组成。除起点和终点每个点每的排水量和入水量要一致,时刻每条管道有一个单位时间最大排水量ff。Bessie的田就是起点v1v_1,终点是一条小溪点vnv_n。求单位时间整个排水系统单位时间最大排水量。Input第一行:两个原创 2017-04-14 23:30:57 · 378 阅读 · 0 评论 -
POJ2455
POJ2455 Secret Milking MachineDescription有nn个点,mm条边。每条边有个长度。FJ要从点v1v_1走到点vnv_n走kk次,每条边只能走一次。(他有一条用于从点v1v_1到点vnv_n的秘密通道)问最长那条路最短可以是多长?Input第一行:三个整数nn、mm和kk,表示点数、边数和走几次。接下来mm行:每行有三个整数uu、vv、ll表示点uu到点vv有条原创 2017-04-14 23:35:00 · 440 阅读 · 0 评论 -
最小费用最大流
裸题意:一个网络,每条边有容量,也有单位流量的费用。此时最大流可能有多种,求费用最小的最大流费用。下面给出最常用的一种方法:以费用为边长,用SPFA沿还可以增广的边找出一条从源点到汇点的最短路,并记录路径和这条路上的最小流量fminf_{min}。若源汇点之间不连通就表示没有增广路了,当前费用就是最大流的最小费用。然后增广这条路,这条路的每条边流量加fminf_{min},这条路的增广费用就是f原创 2017-05-31 12:50:10 · 1043 阅读 · 0 评论 -
Dinic
Dinicdinic 求最大流。先引入两个概念:层次图、阻塞流。层次图根据每个点到源点的距离(到达源点最少要经过的边的数量),将点分层。如图:若level[s]=1,则各点上的数字就是该点的level。一个bfs就行了。不难发现,当层次图中不含有汇点时,就说明没有流可以流了。阻塞流就是一条不考虑反向边的极大流,每次流完一条阻塞流就一定会去掉一条边。然后dinic就是先bfs建个层次图,然后dfs一层原创 2017-03-16 13:18:38 · 774 阅读 · 0 评论