(int u, int f)
| 61 | } |
| 62 | |
| 63 | public static void dfs1(int u, int f) { |
| 64 | deep[u] = deep[f] + 1; |
| 65 | stjump[u][0] = f; |
| 66 | for (int p = 1; p <= power; p++) { |
| 67 | stjump[u][p] = stjump[stjump[u][p - 1]][p - 1]; |
| 68 | } |
| 69 | for (int e = head[u]; e != 0; e = next[e]) { |
| 70 | if (to[e] != f) { |
| 71 | dfs1(to[e], u); |
| 72 | } |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | public static int lca(int a, int b) { |
| 77 | if (deep[a] < deep[b]) { |