From d52b0aee1e0d32c4c6f277e8291cedad2b4f1302 Mon Sep 17 00:00:00 2001 From: Gloria Mundi Date: Sat, 16 Nov 2024 18:09:36 +0100 Subject: add binary lifting test --- content/graph/binary_lifting.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'content/graph') diff --git a/content/graph/binary_lifting.cpp b/content/graph/binary_lifting.cpp index 0b8c218..f88b1a9 100644 --- a/content/graph/binary_lifting.cpp +++ b/content/graph/binary_lifting.cpp @@ -3,13 +3,13 @@ struct Lift { Lift(vector> &adj, int root): dep(adj.size()), par(adj.size()), jmp(adj.size(), root) { - function dfs = [&](int u, int p, int d) { + auto dfs = [&](auto &self, int u, int p, int d) -> void { dep[u] = d, par[u] = p; jmp[u] = dep[p] + dep[jmp[jmp[p]]] == 2*dep[jmp[p]] ? jmp[jmp[p]] : p; - for (int v: adj[u]) if (v != p) dfs(v, u, d+1); + for (int v: adj[u]) if (v != p) self(self, v, u, d+1); }; - dfs(root, root, 0); + dfs(dfs, root, root, 0); } int depth(int v) { return dep[v]; } -- cgit v1.2.3