| 52 | } |
| 53 | } |
| 54 | int lca(int u, int v) { |
| 55 | if (dep[u] < dep[v]) swap(u, v); |
| 56 | for (int k = LG; k >= 0; k--) if (dep[par[u][k]] >= dep[v]) u = par[u][k]; |
| 57 | if (u == v) return u; |
| 58 | for (int k = LG; k >= 0; k--) if (par[u][k] != par[v][k]) u = par[u][k], v = par[v][k]; |
| 59 | return par[u][0]; |
| 60 | } |
| 61 | |
| 62 | |
| 63 | int dp[N], up[N], done[N]; |
nothing calls this directly
no outgoing calls
no test coverage detected