Изменения

Перейти к: навигация, поиск

Схема алгоритма Диница

29 байт добавлено, 09:45, 17 января 2012
Реализация
==Реализация==
<tex>bfs()</tex> <tex>q Q \leftarrow empty \emptyset</tex> <tex> qQ</tex>.push(<tex>s</tex>) while <tex>Q \ne \emptyset</tex> <tex>while !q.isEmty()u \leftarrow Q</tex>.pop <tex>for (v : (flow(</tex> поток из <tex>u,</tex> в <tex>v) </tex> положителен и <tex> 0) and (dist[v] = 0))</tex>не посещена)
<tex>dist[v] \leftarrow dist[u] + 1 </tex>
<tex>qQ</tex>.push(<tex>v)</tex>) <tex>qQ</tex>.pop()</tex>
<tex>makeGl()</tex> <tex>dist \leftarrow 0</tex>0 <tex>bfs()</tex> <tex>if (t</tex> достижима<tex>)</tex> <tex>return true</tex> <tex>return false</tex>
<tex>algorithmDinica()</tex> <tex>flow \leftarrow0</tex> 0 <tex>while makeGLmakeGl()</tex> while (<tex> f' \leftarrow findBlockingFlow()t</tex>достижима) Ищем блокирующий поток Меняем поток <tex> f \leftarrow f' </tex> makeGl() вывести поток <tex> f </tex>
== Источники ==
148
правок

Навигация