Изменения

Перейти к: навигация, поиск
Идея и корректность
==Удаляющий обход==
===Идея и корректность===
Аналогично предыдущей, однако удалять в процессе обхода в глубину из графа все "лишние" рёбра, т.е. рёбра, вдоль которых не получится дойти до стока <tex>t</tex>. С точки зрения реализации, надо просто поддерживать в списке смежности каждой вершины указатель на первое неудалённое Это очень легко реализовать: достаточно удалять ребропосле того, и увеличивать этот указатель как мы просмотрели его в цикле внутри обхода обходе в глубину(кроме того случая, когда мы прошли вдоль ребра и нашли путь до стока). Корректность при этом сохраняется, так же согласно предыдущему пункту.
int dfs (int v, int flow)
while (pushed = dfs(s, INF))
flow += pushed;
 
===Асимптотика===
Анонимный участник

Навигация