write in front
A network flow with upper and lower bounds is limited to the flow of the edge and must be within the range of [down,up] [down,up].
In fact, the normal network flow is a special network flow with the upper and lower bounds, but the traffic limit for each edge is [0,cap] [0,cap]. category
There are two types of network flows with upper and lower bounds:
Have sink
All points are required to meet the flow balance
No sink
In addition to the source point meeting point to meet the flow balance (source point only outflow, sinks only inflow) no Yuanhui feasible flow
It can be thought that to satisfy the lower limit of traffic, the flow of the edge can be set directly to Up−down Up-down.
However, after we find out the maximum flow of this graph, with the lower limit down, some points do not meet the flow balance.
How can this be solved?
We can create additional sources and additional sinks to replenish and absorb these flows.
Specifically, it is:
From the principle of graph theory Hubertau
So, for an edge u->v, we're connecting three edges in the new diagram: U->v cap=up−down cap=up-down s->v cap=down cap=down u->t cap=down Cap=down
For this graph to find the maximum flow, and then determine whether the maximum flow is equal to ∑downi \sum down_i, if equal is feasible flow, otherwise there is no feasible flow. Example SGU 194
* Note: Because there is no Yuanhui, so there is no maximum flow of the minimum flow of said. have Yuanhui feasible Flow
We even have a t->s, the flow limit is [0,inf] [0,inf] edge, there is Yuanhui becomes no Yuanhui, as the above solution can be. Example POJ 2396 minimum Flow
< law one >
Good understanding, time complexity is high. Because s->t traffic is equal to t->s traffic, we can determine the traffic in this network by limiting the traffic to the T->s. So using two points to solve the current dichotomy is [L,R],MID=L+R2 [L,r],mid=\frac {l+r}2; if T->s's traffic is set to mid mid, there is a viable flow, then the upper limit is R=mid r=mid
< law two >
More difficult to understand, time complexity is low. Do not connect the t->s traffic to the edge of the INF INF first, the maximum flow
The T->s flow is connected to the edge of the INF INF, and the maximum flow is calculated on the residual network
Why did you do that? Perceptual to understand, the first step to seek the maximum flow, all can flow of the edge are "doing their best" the flow of the finished;
The second step is to find the maximum flow, the t->s on the traffic will be as small as possible (that is, s->t traffic as small as possible)
Example SGU 176 example Bzoj 1458 maximum flow
< law one >
Similar to the dichotomy method in the minimum flow, it only becomes feasible to increase the lower limit.
< two > connect the T->s flow to the edge of the INF INF, and ask for the maximum flow of the additional source to the additional sink to find the maximum flow of s to T on the residual network
The final answer is the maximum flow for the second time (because the maximum flow that is calculated for the first time is the t->s traffic, and this traffic appears in his reverse side s->t, so there is no need to add additional)
Why did you do that? Still perceptual understanding, the first time to find the maximum flow (additional source to the additional sink) is to meet down as full as possible, but at this time there may be a feasible flow on the s->t, we continue to seek the maximum flow on the residual network, can make the final flow to meet the ≥down \ge Down limit, and maximum.
Welcome to correct your mistake ~