Skip to content

Commit 5bddd35

Browse files
committed
golf
1 parent 19e6a7c commit 5bddd35

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

library/trees/uncommon/linear_kth_par.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66
//! kp.kth_par(v, k); // k edges up from v
77
//! kp.kth_par(v, 1); // v's parent
88
//! @endcode
9-
//! @time O(n*max((2*KAPPA+3)/KAPPA,2*KAPPA) + q)
10-
//! @space O(n*max((2*KAPPA+3)/KAPPA,2*KAPPA))
11-
template<int KAPPA = 2> struct linear_kth_par {
9+
//! @time O(n*max((2*K+3)/K,2*K) + q)
10+
//! @space O(n*max((2*K+3)/K,2*K))
11+
template<int K = 2> struct linear_kth_par {
1212
int n;
1313
vi d, leaf, pos, jmp;
1414
vector<vi> lad;
1515
linear_kth_par(const auto& g):
1616
n(sz(g)), d(n), leaf(n), pos(n), jmp(2 * n), lad(n) {
17-
static_assert(KAPPA >= 1);
17+
static_assert(K >= 1);
1818
int t = 1;
1919
vi st(n);
2020
auto calc = [&](int s) {
21-
jmp[t] = st[max(0, s - KAPPA * (t & -t))];
21+
jmp[t] = st[max(0, s - K * (t & -t))];
2222
t++;
2323
};
2424
auto dfs = [&](auto dfs, int u, int p) -> void {
@@ -32,16 +32,16 @@ template<int KAPPA = 2> struct linear_kth_par {
3232
if (d[l] < d[leaf[v]]) l = leaf[v];
3333
calc(d[u]);
3434
}
35-
int s = (d[l] - d[u]) * (2 * KAPPA + 3) / KAPPA;
36-
s = min(max(s, 2 * KAPPA), d[l] + 1);
35+
int s = (d[l] - d[u]) * (2 * K + 3) / K;
36+
s = min(max(s, 2 * K), d[l] + 1);
3737
rep(i, sz(lad[l]), s) lad[l].push_back(st[d[l] - i]);
3838
};
3939
dfs(dfs, 0, 0);
4040
}
4141
int kth_par(int u, int k) {
4242
assert(0 <= k && k <= d[u]);
4343
int anc_d = d[u] - k;
44-
if (int j = bit_floor(k / (KAPPA + 1u)))
44+
if (int j = bit_floor(k / (K + 1u)))
4545
u = jmp[(pos[u] & -j) | j];
4646
return u = leaf[u], lad[u][d[u] - anc_d];
4747
}

0 commit comments

Comments
 (0)