OSDN Git Service

Merge pull request #2363 from minghu6/master
authorIr1dXD <sirius.caffrey@gmail.com>
Mon, 6 Jul 2020 08:23:16 +0000 (16:23 +0800)
committerGitHub <noreply@github.com>
Mon, 6 Jul 2020 08:23:16 +0000 (16:23 +0800)
1  2 
docs/graph/flow/max-flow.md

@@@ -128,10 -127,10 +128,10 @@@ EK 算法的时间复杂度为 $O(nm^2)
  
  Dinic 算法有两个优化:
  
- 1.   **多路增广** :每次找到一条增广路的时候,如果残余流量没有用完怎么办呢?我们可以利用残余部分流量,再找出一条增广路。这样就可以在一次 DFS 中找出多条增广路,大大提高了算法的效率。
- 2.   **当前弧优化** :如果一条边已经被增广过,那么它就没有可能被增广第二次。那么,我们下一次进行增广的时候,就可以不必再走那些已经被增广过的边。
+ 1.  **多路增广** :每次找到一条增广路的时候,如果残余流量没有用完怎么办呢?我们可以利用残余部分流量,再找出一条增广路。这样就可以在一次 DFS 中找出多条增广路,大大提高了算法的效率。
+ 2.  **当前弧优化** :如果一条边已经被增广过,那么它就没有可能被增广第二次。那么,我们下一次进行增广的时候,就可以不必再走那些已经被增广过的边。
  
 -设点数为 $n$ ,边数为 $m$ ,那么 Dinic 算法的时间复杂度是 $O(n^{2}m)$ ,在稀疏图上效率和 EK 算法相当,但在稠密图上效率要比 EK 算法高很多。
 +设点数为 $n$ ,边数为 $m$ ,那么 Dinic 算法的时间复杂度(在应用上面两个优化的前提下)是 $O(n^{2}m)$ ,在稀疏图上效率和 EK 算法相当,但在稠密图上效率要比 EK 算法高很多。
  
  特别地,在求解二分图最大匹配问题时,可以证明 Dinic 算法的时间复杂度是 $O(m\sqrt{n})$ 。