最大流问题涉及到方方面面,比如交通流量,网络流量以及各种各样与流量相关的话题。
这里有三个重要的概念需要理解。
A 残留网络
B 增广路径
C 割
关于这三个概念参考:http://blog.csdn.net/smartxxyx/article/details/9293665
先给一个例子。
操作 | 从1开始 | 遍历到2 从2开始 | 遍历到4 从4开始 | 遍历到3 从3开始 |
1 | (1000,-) | 已标记 | 已标记 |
|
2 | 6-0=6<1000 (6,1+) |
|
| 已标记 |
3 |
| 4-0=4<6 (4,2+) | 3已经标记 |
|
4 | 7-0=7<1000 (7,1+) |
|
|
|
5 |
| 4-0=4<6 (4,2+) | 5已经标记 |
|
6 |
|
|
| 4-0=4<=4 (4,3+) |
队列 | 124
| 2435 | 435 | 356 |
| 24 | 435 | 35 | 56 |
结果 |
|
|
| 6-3-2-1 路径 Total+=4 变图2 |
操作 | 从1开始 | 遍历到2 从2开始 | 遍历到4 从4开始 | 遍历到5 从5开始 |
1 | (1000,-) |
已标记 |
已标记 |
|
2 | 6-4=2<1000 (2,1+) |
|
| 已标记 |
3 |
| 4-4=0 不标记 | 3-0=3<7 (3,4+) |
|
4 | 7-0=7<1000 (7,1+) |
|
|
|
5 |
| 4-0=4>2 (2,2+) | 5已经标记 |
|
6 |
|
|
| 8-0=8 >4 (2,5+) |
队列 | 124
| 245 | 453 | 536 |
| 24 | 45 | 53 | 36 |
结果 |
|
|
| 6-5-2-1 路径 Totol+=4 变图3 |
操作 | 从1开始 | 遍历到4 从4开始 | 遍历到3 从3开始 | 遍历到5 从5开始 |
1 | (1000,-) | 已标记 | 已标记 |
|
2 | 6-6=0 不标记 |
| 4>3 (3,3-) |
|
3 |
| 3-0=3<7 (3,4+) |
|
|
4 | 7-0=7<1000 (7,1+) |
|
| 已标记 |
5 |
| 2-0=2<7 (2,4+) |
|
|
6 |
|
| 4-4=0 不标记 | 8-2=6 >2 (2,5+) |
队列 | 14
| 435 | 352 | 56 |
| 4 | 35 | 52 | 6 |
结果 |
|
|
| 6-5-2-3-4-1路径 Totol+=2 变图4 |
操作 | 从1开始 | 遍历到4 从4开始 | 遍历到3 从3开始 | 遍历到5 从5开始 |
1 | (1000,-) | 已标记 |
|
|
2 | 6-6=0 不标记 |
| 2>1 (1,3-) |
|
3 |
| 3-2=1<4 (1,4+) |
|
|
4 | 7-2=4<1000 (4,1+) |
|
|
|
5 |
| 2-0=2<4 (2,4+) |
|
|
6 |
|
| 4-4=0 不标记 | 8-4=4>2 (2,5+) |
队列 | 14
| 435 | 352 | 56 |
| 4 | 35 | 52 | 6 |
结果 |
|
|
| 6-5-4-1 路径 Totol+=2 变图5 |
操作 | 从1开始 | 遍历到4 从4开始 | 遍历到3 从3开始 | 遍历到2 从2开始 |
1 | (1000,-) | 已标记 |
|
|
2 | 6-6=0 不标记 |
| 2>1 (1,3-) |
|
3 |
| 3-2=1<3 (1,4+) |
| 已标记 |
4 | 7-4=3<1000 (3,1+) |
|
|
|
5 |
| 2-2=0 不标记 |
| 4-4=0 不标记 |
6 |
|
| 4-4=0 不标记 |
|
队列 | 14
| 43 | 32 | 2 |
| 4 | 3 | 2 |
|
结果 |
|
|
| 结束 |