- 最大流を求めるアルゴリズム
- DinicはO(V^2E)
- 最大流を求めるアルゴリズムの歴史
- AOJ GRL_6_A 最大流で実装の検証ができる
- 僕のPython実装(AOJで検証済み)
- 辺はdefaultdict(dict)で待ってるので逆辺の取得のために逆辺のindexを持つ必要はない
- (多くのC++実装では各辺に逆辺のindexを持たせてる)
- 「探索済み辺を探索しない」
- これを「まだ探索してない辺の最初のindex」を
itertion_count
に持つことで実現している - これを使うためにはindexから辺への対応づけが必要だから
max_flow
の中で最初に作ってる:edges_index
- これを「まだ探索してない辺の最初のindex」を
- 辺はdefaultdict(dict)で待ってるので逆辺の取得のために逆辺のindexを持つ必要はない
- GitHub
他の人の実装