From aaa5ca80fe9e8c809ded9c4a88a36ed5f7c452cd Mon Sep 17 00:00:00 2001 From: Yap Yee King Date: Sat, 3 May 2025 15:51:31 +0800 Subject: [PATCH] Fix speedup Last traversed index of node's edge list wasn't updated. --- ch8/maxflow.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ch8/maxflow.java b/ch8/maxflow.java index 58ed20f..b920394 100644 --- a/ch8/maxflow.java +++ b/ch8/maxflow.java @@ -154,10 +154,12 @@ long DFS(int u, int t, long f) { // traverse from s->t int start = last[u]; int stop = AL.get(u).size(); for (int i = start; i < stop; i++) { // from last edge + last[u] = i; Edge e = EL[AL.get(u).get(i)]; int v = e.v; long cap = e.w; long flow = e.f; + if (d[v] != d[u] + 1) continue; // not part of layer graph long pushed; if ((pushed = DFS(v, t, Math.min(f, cap - flow))) > 0) {