NISHIO Hirokazu
[Translate]
Dinic
最大流
を求めるアルゴリズム
DinicはO(V^2E)
最大流を求めるアルゴリズムの歴史
AOJ GRL_6_A 最大流
で実装の検証ができる
僕のPython実装(AOJで検証済み)
辺はdefaultdict(dict)で待ってるので逆辺の取得のために逆辺のindexを持つ必要はない
(多くのC++実装では各辺に逆辺のindexを持たせてる)
「探索済み辺を探索しない」
これを「まだ探索してない辺の最初のindex」を
itertion_count
に持つことで実現している
これを使うためにはindexから辺への対応づけが必要だから
max_flow
の中で最初に作ってる:
edges_index
GitHub
他の人の実装
蟻本
p.194
http://algoogle.hadrori.jp/algorithm/dinic.html
https://ei1333.github.io/luzhiled/snippets/graph/dinic.html
https://tubo28.me/compprog/algorithm/dinic/
http://www.prefield.com/algorithm/graph/dinic.html
最大二部マッチング
Tweet
Related Pages
最小カット勉強会
Dinicの速さ
AGC003B
最大流
最大流を求めるアルゴリズムの歴史
最大二部マッチング
蟻本
→
最小カット
×
最大流
×
最小カットのカットは「辺を切る」ではない
×
LPとグラフと定式化
→
Project Selection Problem
→
最小カットに帰着
×
最大流
×
Project Selection Problem
×
ACLPC D
×
最大二部マッチング
×
帰着する力
×
最小費用流に帰着
→
最大流に帰着
→
オイラー路
×
グリッド上の幅優先探索
×
ハンガリアン法
×
二部グラフの最大マッチング
×
二重辺連結成分分解
×
二重頂点連結成分分解
×
全点対間最短路
×
単一始点最短路
×
強連結成分分解
×
彩色数
×
最大クリーク
×
最大流
×
最大独立集合
×
最小全域有向木
×
最小全域木
×
最小流量制限付き最大流
×
最小費用流
×
橋/関節点
×
bit
×
binary-trie
×
convex-hull-trick-add-monotone
×
li-chao-tree
×
link-cut木_部分木クエリ
×
link-cut木
×
ウェーブレット行列
×
スパーステーブル
×
スライド区間の昇順k個の和
×
セグメント木
×
トライ木
×
マージ可能ヒープ
×
列の平方分割
×
平衡二分探索木
×
永続配列
×
素集合データ構造
×
unionfind
×
ローリングハッシュ
×
接尾辞配列
×
最長共通接頭辞
×
最長回文
×
回文
×
複数文字列検索
×
hl分解
×
全方位木dp
×
最小共通祖先
×
木の直径
×
木の重心分解
×
根付き木に変換
×
mod-pow
×
オイラーのφ関数
×
オイラーのφ関数テーブル
×
ベル数
×
ラグランジュ補間
×
二項係数
×
二項係数テーブル
×
任意mod畳み込み
×
分割数
×
分割数テーブル
×
商列挙
×
形式的冪級数
×
形式的べき級数
×
拡張ユークリッドの互除法
×
拡張ユークリッド互除法
×
第2種スターリング数
×
約数列挙
×
素因数分解
×
素数テーブル
×
素数判定
×
組合せ
×
行列演算
×
進数変換
×
階乗
×
離散対数問題
×
高速フーリエ変換
×
divide-and-conquer-optimization
×
monotone-minima
×
スライド最小値
×
一次元累積和
×
二次元累積和
×
個数制限付きナップサック
×
最大長方形
×
最適二分探索木
×
最長増加部分列
×
ダブリング
×
包除原理
×
燃やす埋める問題
×
燃やす埋める
×
牛ゲー
×
mo’s_algorithm
×
offline-dynamic-connectivity
×
座標圧縮
×
アルゴリズム
→
Luzhiled's memo
→
アルゴリズム
×
蟻本
×
区間スケジューリング
×
二分探索木
×
unionfind
×
最短路問題
×
最小全域木
×
ユークリッドの互除法
×
ニ分探索
×
しゃくとり法
×
半分全列挙
×
座標圧縮
×
セグメント木
×
binary_lndexed_tree
×
バケット法
×
平方分割
×
ビットdp
×
bitdp
×
行列累乗
×
繰り返し二乗法
×
最大流
×
最小カット
×
二部マッチング
×
一般マッチング
×
マッチング
×
辺カバー
×
安定集合
×
点カバー
×
最小費用流
×
凸包
×
grundy数
×
強連結成分分解
×
2-sat
×
lca
×
ダブリング
×
接尾辞配列
×
sparse_table
×
rmq
×
atcoder
→
プログラミングコンテストチャレンジブック
→
abc180
×
巡回セールスマン問題
×
tsp
×
bitdp
×
蟻本
→
ABC180E
→
優先度キュー
×
heapq
×
蟻本
→
ダイクストラ法
→
atcoder_library_practice_contest
×
最大流
×
二部グラフ
×
最大二部マッチング
→
ACLPC D
→
蟻本
→
条件付き最大値を対数オーダーで求める
子の和は葉×高さ
→
蟻本
×
binary_lndexed_tree
×
bit
×
fenwick_tree
×
値域と定義域の交換
×
multiset
×
座標圧縮
×
データ構造
→
フェニック木
→
atcoder
×
atcoder_library_practice_contest
×
numba
×
cython
×
フェニック木
×
セグメント木
×
遅延伝搬セグメント木
×
接尾辞配列
×
lcp_array
×
pythonでの累乗・逆数・階乗・階乗逆数・組み合わせ
×
中国剰余定理
×
floor_sum
×
np.convolve
×
two_snuke
×
長整数が速い
×
dsu
×
unionfind
×
最大流
×
最小費用流
×
scc
×
2-sat
→
AtCoder Library
→
tokoharu
×
最短経路
×
差分制約
×
牛ゲー
×
最大流
×
最大流最小カット定理
×
最大循環流
×
最小費用流
×
最小費用循環流
×
Project Selection Problem
×
双対線形計画問題
→
LPとグラフと定式化
"
Engineer's way of creating knowledge
" the English version of my book is now available on
[Engineer's way of creating knowledge]
(C)NISHIO Hirokazu / Converted from
[Scrapbox]
at
11/23/2025, 6:06:24 PM
[Edit]