From d131623203dc5806a8220fcd812bedf8ef749620 Mon Sep 17 00:00:00 2001 From: Luke Videckis Date: Sun, 26 Apr 2026 11:11:53 -0600 Subject: [PATCH 1/3] nits --- .../trees/uncommon/ladder_decomposition.hpp | 21 +++++++++---------- .../trees/kth_path_ladder.test.cpp | 2 -- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/library/trees/uncommon/ladder_decomposition.hpp b/library/trees/uncommon/ladder_decomposition.hpp index dc90910c..901169c4 100644 --- a/library/trees/uncommon/ladder_decomposition.hpp +++ b/library/trees/uncommon/ladder_decomposition.hpp @@ -14,30 +14,29 @@ //! @endcode struct ladder { int n; - vi d, p, idx, l; + vi d, p, idx, lad; vector jmp; ladder(const auto& g): - n(sz(g)), d(n), p(n), idx(n), l(2 * n) { + n(sz(g)), d(n), p(n), idx(n), lad(2 * n) { int i = 0; - vi s(n); auto dfs = [&](auto dfs, int u) -> vi { vi path; - s[d[u]] = u; for (int v : g[u]) if (v != p[u]) { d[v] = d[p[v] = u] + 1; vi x = dfs(dfs, v); if (sz(x) > sz(path)) swap(x, path); for (int y : x) idx[y] = i; - for (int y : x) l[i++] = y; - rep(j, 0, min(sz(x), d[v])) l[i++] = s[d[u] - j]; + for (int y : x) lad[i++] = y; + rep(j, 0, min(sz(x), d[v])) lad[i] = + p[lad[i - 1]], i++; } path.push_back(u); return path; }; vi x = dfs(dfs, 0); for (int y : x) idx[y] = i; - for (int y : x) l[i++] = y; + for (int y : x) lad[i++] = y; jmp = treeJump(p); } int kth_par(int u, int k) { @@ -45,10 +44,10 @@ struct ladder { if (k == 0) return u; int bit = __lg(k); u = jmp[bit][u], k -= (1 << bit); - int i = idx[u], j = i + d[l[i]] - d[u]; - assert(l[j] == u); - // subarray [j, j+k] of l corresponds to the rest + int i = idx[u], j = i + d[lad[i]] - d[u]; + assert(lad[j] == u); + // subarray [j, j+k] of lad corresponds to the rest // of the jump - return l[j + k]; + return lad[j + k]; } }; diff --git a/tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp b/tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp index 0aa10aa3..95596e45 100644 --- a/tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp +++ b/tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp @@ -1,8 +1,6 @@ #define PROBLEM \ "https://judge.yosupo.jp/problem/jump_on_tree" #include "../template.hpp" -#undef sz -#define sz(x) (int)ssize(x) #include "../../../library/trees/uncommon/ladder_decomposition.hpp" int main() { cin.tie(0)->sync_with_stdio(0); From 8877de0c24d287f54d70189a5afe3e46a8bc5965 Mon Sep 17 00:00:00 2001 From: GitHub Date: Sun, 26 Apr 2026 17:14:44 +0000 Subject: [PATCH 2/3] [auto-verifier] verify commit d131623203dc5806a8220fcd812bedf8ef749620 --- .verify-helper/timestamps.remote.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.verify-helper/timestamps.remote.json b/.verify-helper/timestamps.remote.json index f6222ff6..36529f6a 100644 --- a/.verify-helper/timestamps.remote.json +++ b/.verify-helper/timestamps.remote.json @@ -141,7 +141,7 @@ "tests/library_checker_aizu_tests/trees/hld_lib_checker_path.test.cpp": "2026-04-12 16:21:27 -0600", "tests/library_checker_aizu_tests/trees/hld_lib_checker_subtree_edges.test.cpp": "2026-04-12 16:21:27 -0600", "tests/library_checker_aizu_tests/trees/hld_lib_checker_subtree_nodes.test.cpp": "2026-04-12 16:21:27 -0600", -"tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp": "2026-04-25 22:43:50 -0600", +"tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp": "2026-04-26 11:11:53 -0600", "tests/library_checker_aizu_tests/trees/kth_path_linear.test.cpp": "2026-04-21 13:56:58 -0600", "tests/library_checker_aizu_tests/trees/kth_path_tree_lift.test.cpp": "2026-04-12 16:21:27 -0600", "tests/library_checker_aizu_tests/trees/lca_all_methods_aizu.test.cpp": "2026-04-21 13:56:58 -0600", From db38628c0ef82bc39c0e9c3818107793db45f568 Mon Sep 17 00:00:00 2001 From: Luke Videckis Date: Sun, 26 Apr 2026 11:29:24 -0600 Subject: [PATCH 3/3] reverting --- library/trees/uncommon/ladder_decomposition.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/trees/uncommon/ladder_decomposition.hpp b/library/trees/uncommon/ladder_decomposition.hpp index 901169c4..5f726d1d 100644 --- a/library/trees/uncommon/ladder_decomposition.hpp +++ b/library/trees/uncommon/ladder_decomposition.hpp @@ -19,8 +19,10 @@ struct ladder { ladder(const auto& g): n(sz(g)), d(n), p(n), idx(n), lad(2 * n) { int i = 0; + vi st(n); auto dfs = [&](auto dfs, int u) -> vi { vi path; + st[d[u]] = u; for (int v : g[u]) if (v != p[u]) { d[v] = d[p[v] = u] + 1; @@ -28,8 +30,8 @@ struct ladder { if (sz(x) > sz(path)) swap(x, path); for (int y : x) idx[y] = i; for (int y : x) lad[i++] = y; - rep(j, 0, min(sz(x), d[v])) lad[i] = - p[lad[i - 1]], i++; + rep(j, 0, min(sz(x), d[v])) lad[i++] = + st[d[u] - j]; } path.push_back(u); return path;