File tree Expand file tree Collapse file tree 2 files changed +15
-14
lines changed
Expand file tree Collapse file tree 2 files changed +15
-14
lines changed Original file line number Diff line number Diff line change @@ -6,25 +6,26 @@ def __init__(self, sz):
66 def add_edge (self , i , j , w ):
77 self .G [i ][j ] += w
88
9- def dfs (self , s , t , FLOW ):
10- if s in self .V : return 0
11- if s == t : return FLOW
12- self .V .add (s )
13- for u , w in self .G [s ].items ():
9+ def dfs (self , u , FLOW ):
10+ if u in self .reached : return 0
11+ if u == self .T : return FLOW
12+ G = self .G
13+ self .reached .add (u )
14+ for v , w in G [u ].items ():
1415 if w :
15- F = self .dfs (u , t , min (FLOW , w ))
16- if F :
17- self .G [s ][u ] -= F
18- self .G [u ][s ] += F
19- return F
20- self .dead .add (s )
16+ f = self .dfs (v , min (FLOW , w ))
17+ if f :
18+ G [u ][v ] -= f
19+ G [v ][u ] += f
20+ return f
2121 return 0
2222
23- def max_flow (self , s , t ):
23+ def max_flow (self , S , T ):
2424 flow = 0
25+ self .T = T
2526 while True :
26- self .V = set ()
27- pushed = self .dfs (s , t , float ('inf' ))
27+ self .reached = set ()
28+ pushed = self .dfs (S , float ('inf' ))
2829 if not pushed : break
2930 flow += pushed
3031 return flow
You can’t perform that action at this time.
0 commit comments