Skip to content

Commit 0de6bc9

Browse files
lrvideckisweb-flow
andauthored
Ladder nit (#215)
* nits * [auto-verifier] verify commit d131623 * reverting --------- Co-authored-by: GitHub <noreply@github.com>
1 parent cf3f094 commit 0de6bc9

3 files changed

Lines changed: 13 additions & 14 deletions

File tree

.verify-helper/timestamps.remote.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
"tests/library_checker_aizu_tests/trees/hld_lib_checker_path.test.cpp": "2026-04-12 16:21:27 -0600",
142142
"tests/library_checker_aizu_tests/trees/hld_lib_checker_subtree_edges.test.cpp": "2026-04-12 16:21:27 -0600",
143143
"tests/library_checker_aizu_tests/trees/hld_lib_checker_subtree_nodes.test.cpp": "2026-04-12 16:21:27 -0600",
144-
"tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp": "2026-04-25 22:43:50 -0600",
144+
"tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp": "2026-04-26 11:11:53 -0600",
145145
"tests/library_checker_aizu_tests/trees/kth_path_linear.test.cpp": "2026-04-21 13:56:58 -0600",
146146
"tests/library_checker_aizu_tests/trees/kth_path_tree_lift.test.cpp": "2026-04-12 16:21:27 -0600",
147147
"tests/library_checker_aizu_tests/trees/lca_all_methods_aizu.test.cpp": "2026-04-21 13:56:58 -0600",

library/trees/uncommon/ladder_decomposition.hpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,41 +14,42 @@
1414
//! @endcode
1515
struct ladder {
1616
int n;
17-
vi d, p, idx, l;
17+
vi d, p, idx, lad;
1818
vector<vi> jmp;
1919
ladder(const auto& g):
20-
n(sz(g)), d(n), p(n), idx(n), l(2 * n) {
20+
n(sz(g)), d(n), p(n), idx(n), lad(2 * n) {
2121
int i = 0;
22-
vi s(n);
22+
vi st(n);
2323
auto dfs = [&](auto dfs, int u) -> vi {
2424
vi path;
25-
s[d[u]] = u;
25+
st[d[u]] = u;
2626
for (int v : g[u])
2727
if (v != p[u]) {
2828
d[v] = d[p[v] = u] + 1;
2929
vi x = dfs(dfs, v);
3030
if (sz(x) > sz(path)) swap(x, path);
3131
for (int y : x) idx[y] = i;
32-
for (int y : x) l[i++] = y;
33-
rep(j, 0, min(sz(x), d[v])) l[i++] = s[d[u] - j];
32+
for (int y : x) lad[i++] = y;
33+
rep(j, 0, min<int>(sz(x), d[v])) lad[i++] =
34+
st[d[u] - j];
3435
}
3536
path.push_back(u);
3637
return path;
3738
};
3839
vi x = dfs(dfs, 0);
3940
for (int y : x) idx[y] = i;
40-
for (int y : x) l[i++] = y;
41+
for (int y : x) lad[i++] = y;
4142
jmp = treeJump(p);
4243
}
4344
int kth_par(int u, int k) {
4445
assert(0 <= k && k <= d[u]);
4546
if (k == 0) return u;
4647
int bit = __lg(k);
4748
u = jmp[bit][u], k -= (1 << bit);
48-
int i = idx[u], j = i + d[l[i]] - d[u];
49-
assert(l[j] == u);
50-
// subarray [j, j+k] of l corresponds to the rest
49+
int i = idx[u], j = i + d[lad[i]] - d[u];
50+
assert(lad[j] == u);
51+
// subarray [j, j+k] of lad corresponds to the rest
5152
// of the jump
52-
return l[j + k];
53+
return lad[j + k];
5354
}
5455
};

tests/library_checker_aizu_tests/trees/kth_path_ladder.test.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#define PROBLEM \
22
"https://judge.yosupo.jp/problem/jump_on_tree"
33
#include "../template.hpp"
4-
#undef sz
5-
#define sz(x) (int)ssize(x)
64
#include "../../../library/trees/uncommon/ladder_decomposition.hpp"
75
int main() {
86
cin.tie(0)->sync_with_stdio(0);

0 commit comments

Comments
 (0)