diff --git a/graph/lca.cpp b/graph/lca.cpp index 00772250285ee93c9bd79f6cd5d332be18a5e0a9..cffce0a2e4c55b6ba1e3ae4af400eea91fbb87b6 100644 --- a/graph/lca.cpp +++ b/graph/lca.cpp @@ -18,22 +18,22 @@ int par[MAX][MAXLOG], cost[MAX][MAXLOG]; // Perform DFS while filling h, par, and cost void dfs(int v, int p = -1, int c = 0) { - par[v][0] = p; + par[v][0] = p; //*** cost[v][0] = c; - if (p + 1) - h[v] = h[p] + 1; + if (p + 1) + h[v] = h[p] + 1; - for (int i = 1; i < MAXLOG; i++) - if (par[v][i - 1] + 1) { - par[v][i] = par[par[v][i - 1]][i - 1]; + for (int i = 1; i < MAXLOG; i++) + if (par[v][i - 1] + 1) { + par[v][i] = par[par[v][i - 1]][i - 1]; //* cost[v][i] += cost[v][i - 1] + cost[par[v][i - 1]][i - 1]; //** cost[v][i] = max(cost[v][i], max(cost[par[v][i-1]][i-1], cost[v][i-1])); } - for (auto u : graph[v]) + for (auto u : graph[v]) if (p != u.fi) - dfs(u.fi, v, u.se); + dfs(u.fi, v, u.se); } // Preprocess tree with rooted at v